加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

octave源代码安装之——依赖关系解析(致数学爱好者)

发布时间:2020-12-13 20:00:10 所属栏目:百科 来源:网络整理
导读:octave源代码安装之——依赖关系解析(致数学爱好者) 我的系统是gentoo 3. 0 .6,gnome-3,gcc-4.5.3,安装好系统,和一些必要的autotool,就可以下载octave 安装, 有些教程(Programming Abstractions in C: A Second Course in Computer Science )说程序90%

octave源代码安装之——依赖关系解析(致数学爱好者)

我的系统是gentoo 3. 0 .6,gnome-3,gcc-4.5.3,安装好系统,和一些必要的autotool,就可以下载octave 安装,

有些教程(Programming Abstractions in C: A Second Course in Computer Science )说程序90%是依靠库(Library)来完成的,只有很少的一部分是跟据应用来编写的代码,

从octave的源代码安装来看,果然如此。

下载octave-3.4.3.tar.gz,然后解压,建议进入su超级用户进行操作,

tar xvvf octave-3.4.3.tar.gz

cd octave-3.4.3

./configure

make

make install

当第一步,./configure的编译时候,首先是提示依赖BLAS和LAPACK,其实安装LAPACK就包括了BLAS,下载LAPACK,

1,我们现看看LAPACK的来龙去脉,LAPACK-Linear Algebra PACKage 的缩写,线性代数包,就是计算机算法程序,LAPACK的安装是cmake,如果你没有安装cmake,那就首先安装cmake后,再解压tar xvvf lapack-3.4.0.tgz,然后,进入文件夹后,

cmake .

make

make install

LAPACK是一个由: 田纳西大学,加州大学伯克利分校,科罗拉多州丹佛大学和NAG有限公司联合开发并提供的软件包。


LAPACK是用Fortran 90和提供用于求解线性方程组的例程,最小二乘线性系统的方程组,特征值问题,奇异值问题的解决方案。还提供了相关的矩阵因子分解(LU,Cholesky,QR,SVD,Schur,generalized Schur),如舒尔因式分解的重新排序和条件数估计的相关计算。稠密和带状矩阵处理,但不是一般的稀疏矩阵。在所有领域,类似的功能是提供真实和复杂的矩阵,在单精度和双精度。

LAPACK项目最初的目标是使被广泛使用的EISPACK,并有效地共享内存的向量和并行处理器上运行LINPACK库。在这些机器上,LINPACK性能和EISPACK是低效的,因为其内存访问模式不顾机器的多层次的内存层次结构,从而花费太多时间,而不是做有用的浮点运算的数据移动。LAPACK重组的算法,使用块矩阵运算,如矩阵乘法,解决这个问题,在最内层的循环。这些块操作,可以为每个架构进行了优化,占内存层次结构,并提供各种现代化的机器上实现高效率的运输方式。我们使用的术语,而不是“便携式”的“运输”,因为最快的性能,LAPACK的要求,高度优化的分块矩阵操作每台机器上已经实现。

更多信息参考:

http://www.netlib.org/lapack/

2,

当你安装好LAPACK后,再一次进入octave文件夹,octave-3.4.3/$./configure编译的时候,会出现一下的软件依赖关系表,逐一解释吧!

./configure

configure: WARNING: UMFPACK not found. This will result in some lack of functionality for sparse matrices.
configure: WARNING: qrupdate not found. The QR & Cholesky updating functions will be slow.
configure: WARNING: AMD library not found. This will result in some lack of functionality for sparse matrices.
configure: WARNING: COLAMD library not found. This will result in some lack of functionality for sparse matrices.
configure: WARNING: CCOLAMD library not found. This will result in some lack of functionality for sparse matrices.
configure: WARNING: CHOLMOD library not found. This will result in some lack of functionality for sparse matrices.
configure: WARNING: CXSparse library not found. This will result in some lack of functionality for sparse matrices.
configure: WARNING: GLPK library not found. The glpk function for solving linear programs will be disabled.
configure: WARNING: GraphicsMagick++ library not found. The imread function for reading image files will not be fully functional.
configure: WARNING: HDF5 library not found. Octave will not be able to save or load HDF5 data files.
configure: WARNING: Qhull library not found -- this will result in loss of functionality of some geometry functions.
configure: WARNING: FLTK config script not found. Native graphics will be disabled.
configure: WARNING:
configure: WARNING: I didn't find the necessary libraries to compile native
configure: WARNING: graphics. It isn't necessary to have native graphics,
configure: WARNING: but you will need to have gnuplot installed or you won't
configure: WARNING: be able to use any of Octave's plotting commands
configure: WARNING:
configure: WARNING: I didn't find gnuplot. It isn't necessary to have gnuplot
configure: WARNING: installed,but you won't be able to use any of Octave's
configure: WARNING: plotting commands without it.
configure: WARNING:
configure: WARNING: If gnuplot is installed,but isn't in your path,you can
configure: WARNING: tell Octave where to find it by using the gnuplot_binary
configure: WARNING: function. For example,
configure: WARNING:
configure: WARNING: gnuplot_binary ("/full/path/and/name/of/gnuplot/binary")
configure: WARNING:
configure: WARNING: at the Octave prompt.
configure: WARNING:
configure: WARNING: Setting default value to gnuplot
configure: WARNING:
configure:
configure: NOTE: libraries may be skipped if a library is not found OR
configure: NOTE: if the library on your system is missing required features.
(none) octave-3.4.3 #

3,依次解析,

佛罗里达大学贡献此软件包,SuiteSparse.

SuiteSparse: A Suite of Sparse matrix packagesthat I haveauthored or co-authored are available as a single tar or zip file here,

是一个分散矩阵集成软件包,可以将一下软件包放在一个tar包或者zip包,我下载的是SuiteSparse-3.7.0.tar.gz,

具体软件包如下:

  • SuiteSparseQR multithreaded multifrontal sparseQR factorization
  • AMD: approximate minimum degree
  • CAMD: constrainted approximate minimum degree
  • CCOLAMD: constrained column approximate minimum degree
  • COLAMD: column approximate minimum degree
  • CHOLMOD: sparse supernodal Cholesky factorization and update/downdate
  • LDL: a simple LDL^T factorization
  • UMFPACK: sparse multifrontal LU factorization
  • UFconfig : common configurations (for all but CSparse)
  • CSparse,: a concise sparse matrix packagea sparse matrix package for my book,Direct Methods for Sparse Linear Systems,published as part ofSIAM's book series on theFundamentalsof Algorithms
  • CXSparse: CSparse eXtended,with complex matrices and "long" integers,
  • RBio: read/write matrices in Rutherford/Boeing format
  • BTF: permutation to block triangular form
  • KLU: sparse LU factorization,for circuit simulation

#SuiteSparseQR多线程多波分散QR分解
#AMD:近似最低程度
#CAMD:约束近似最低程度
#CCOLAMD:约束的列近似最低程度
#COLAMD:列近似最低程度
#CHOLMOD:分散supernodal Cholesky分解和update/downdate
#低密度脂蛋白:一个简单的LDL^ T分解
#UMFPACK:分散的多波LU分解
#UFconfig:常见的配置(但CSparse)
#CSparse一个简明的稀疏矩阵稀疏矩包,我的书,分散线性系统的直接方法,SIAM系列丛书的一部分(算法的基础)上公布
#CXSparse:CSparse扩展,复杂的矩阵和“长”的整数,
#RBio:读/写格式矩阵在卢瑟福/波音公司
#BTF:排列块三角形式
#KLU:分散LU分解,电路仿真,


但是,在安装SuiteSparse-3.7.0的时候,查看README,

(1)依赖BLAS和LAPACK库,可以查看默认设置,UFconfig/UFconfig.mk 中 -lblas,llapack
(2)安装 Intel's Threading Building Blocks (TBB)

英特尔?线程构建模块(英特尔TBB)提供了一个丰富而完整的的方式来表达一个C + +程序的并行。它是一个库,可以帮助您利用多核心处理器的性能,而不必是一个线程的专家。英特尔TBB不仅仅是一个线程更换库。它代表了一种更高层次的,基于任务的并行抽象平台的细节和可扩展性和性能的线程机制。

http://threadingbuildingblocks.org/ver.php?fid=180

(3)编译METIS(或者不用METIS),

如果你没有下载METIS,可以选择跳过, 进入并编辑SuiteSparse-3.7.0/UFconfig/UFconfig.mk ,

CHOLMOD_CONFIG = -DNPARTITION

因为METIS是CHOLMOD所依赖的软件包,所以,在CHOLMOD的选项中,-DNPARTITION的解释是不包括分区模块,GNU LGPL 认证,同时也不包括METIS,因此选择这个选项,可以不安装METIS,且可以安装SuiteSparse。

(4)也可以根据需要设置其他的 UFconfig/UFconfig.mk ,

如果你已经编译了 SuiteSparse,然后你有更改了UFconfig/UFconfig.mk,你必须输入“make purge" (或者 ”make realclean"在当前文件夹)

(5)进入SuiteSparse-3.7.0,输入"make",所有的软件包都将安装,如果你仅仅安装库文件而不运行demos,可以输入"make library" 进行安装。

(6)安装,输入"sudo make install ",如果你是超级用户,可以直接输入“make install" 进行安装。 所有的库默认安装在 /usr/local/lib 和 /usr/local/include中。可以在UFconfig.mk 中更改安装路径。

(7) 卸载,超级用户,输入“ make uninstall "即可。

4.

qrupdate是用Fortran语言编写的库。据官方统计,这是Fortran 90的兼容,
但可能会被编译Fortran 77的编译器支持
两种常见的扩展名:双重复合型,最终如果做/结束/结束子程序块
自动数组。后者只需要测试套件。

支持以下操作:

QR秩更新(qr1up1)
添加剂排名- 1更新到更新后的QR分解
原矩阵(A =+ U* V“)。工务局及节约
分解。
QR列的插入(qrinc)
更新后插入一列的QR分解
原始矩阵。工程全面节约分解。
QR列删除(qrdec)
更新后,删除一列从QR分解
原始矩阵。工程全面节约分解。
QR列移(qrshc)
更新后的列循环移位的QR分解
原始矩阵。工程全面节约分解。
QR行插入(qrinr)
更新后插入行的QR分解
原始矩阵。只有充分分解工程。
QR行删除(qrder)
更新后删除连续的QR分解
原始矩阵。只有充分分解工程。

Cholesky乔列斯基排名- 1更新(ch1up)
Cholesky分解更新后积极秩1更新
A =+U * U“。

Cholesky乔列斯基对称插入(chinx)
更新后的对称列/行的Cholesky分解
插入。
Cholesky乔列斯基对称插入(chdex)
更新后的对称列/行的Cholesky分解
删除。
Cholesky乔列斯基对称移位(chshx)
更新后的对称列/行的Cholesky分解
左/右循环移位。

LU rank 卢排名- 1更新(lu1up)
更新后排名- 1更新(A = A+U *诉“)LU分解。
没有旋转可用。比lup1up快,但稳定性较差。
LU rank 卢透视排名- 1更新(lup1up)
更新行的旋转后排名- 1更新LUP分解
(A = A+U *诉“)。还更新了行置换矩阵。较慢

比lu1up,但比较稳定。


特别是,它已经过测试,与下列编译器:
*gfortran4.3
*G950.91
*英特尔Fortran10.1
*g77-3.4*(不编译测试套件)
*F2C(不编译测试套件)
*雷希/富士通公司的Fortran8.0(SSL测试套件二)
- 拜月Piclum,U.,加拿大阿尔伯达省





安装步骤:


如果你成功地编译一个编译器qrupdate这里没有提到
(或更早版本),请与我联系,使该列表可以扩展。

UNIX兼容系统上进行编译,编辑Makeconf设置您的
首选的编译器和编译器标志。提供默认值使用GNU的Fortran
应马上工作。

然后做“make lib”,以创建一个静态库(libqrupdate.a)。要创建
动态库(libqrupdate.so),


做“make solib”。在这种情况下,确保
您的编译器标志支持PIC代码(如果您的系统上需要)。

“make test" 测试。

"make install"安装即可。

5, GNU GLPK(GNU线性编程工具包)的目的是为解决大型线性规划(LP),混合整数规划(MIP)和其他有关问题。这是一个ANSI C编写,并在一个可调用的库的形式举办的例程。

GLPK支持的GNU MathProg建模语言,这是一个子集AMPL语言。

GLPK包包括以下主要组件:

*原始和对偶单纯形方法
*原 - 对偶内点法
*分支和明挖法
*翻译的GNU MathProg
*应用程序接口(API)

*独立的LP/MIP的求解器

下载glpk-4.45.tar.gz,然后解压,进入文件夹,

./configure

make

make install

或者 ( ./configure && make && make install )


6,GraphicsMagick++ library

graphicsmagick是图像处理的瑞士军刀。由282K的物理线的源代码(根据大卫答惠勒的SLOCCount)的基础包的,包括第三方库964K组成它提供了一个工具和它支持阅读的图书馆的强大和高效的收集,写作,和操纵图像在超过88,包括重要的格式,如DPX,GIF,JPEG,JPEG2000,PNG,PDF格式,PNM和TIFF格式。

图像处理多线程(见的多线程基准测试结果),使CPU绑定的任务规模呈线性增加处理器内核的OpenMP。支持OpenMP需要编译GCC4.2(或更高版本),或使用任何C编译器的OpenMP2.0规范的支持,至少。

http://sourceforge.net/projects/graphicsmagick/files/

依赖软件包列表:

BZlib,ralcgm,dcraw,fig2dev,freetype,ghostscript,hp2xx,lcms,gnuplot,graphviz,html2ps,JBIG-kit

JPEG V1,MPEG,LIBPNG,ra_ppm,rawtorle from the Utah Raster Toolkit (urt-3.1b.tar.Z),scanimage

TIFF,TRIO,umem,libwmf,X,libxml,XZ,ZLIB

这些软件包都可以从这个网址上下载:

ftp://ftp.graphicsmagick.org/pub/GraphicsMagick/delegates/

安装完成所有的依赖关系后,

./configure

make

make install

进行安装。

7,HDF5-1.8.8

HDF5的是一个数据模型,库,并存储和管理数据的文件格式。它支持无限多种数据类型,并设计灵活和高效I / O和高容量和复杂的数据。HDF5的便携式和可扩展性,允许应用程序在其使用的HDF5的演变。HDF5的技术套件,包括用于管理的工具和应用,操作,查看和分析的HDF5格式的数据。

http://www.hdfgroup.org/ftp/HDF5/current/src/

这个是源代码下载地址,安装方法一样,解压后进入文件夹./configure && make && make install

8,Qhull

Qhull计算的凸包,Delaunay三角网,Voronoi图,约半空间的交集点,最远的现场Delaunay三角网,和现场最远Voronoi图。源代码运行在2 - D,3 - D,4 - D,和更高的层面。Qhull实现计算凸包Quickhull的算法。它可以处理浮点运算舍入误差。它计算量,面积,和近似凸包。


Qhull不支持的非凸曲面,非凸物体的网格生成,中型输入9- D和更高的,字母的形状,加权Voronoi图,Voronoi图卷,或约束Delaunay三角三角,


解压缩,make 安装方法:

cd src/libqhull

make

也可以用cmake 安装

cd qhull

mkdir build

cd build

cmake ..

make

make install

9.FLTK库

FLTK是专为小型模块化的,足够的静态链接,但作为一个共享库很好。FLTK还包括一个优秀的建设者所谓的流体,可用于在几分钟内创建应用程序的UI

解压缩,make 安装方法:

cd fltk-*

./configure

make

make install

也可以用cmake 安装

cd fltk.*

mkdir build

cd build

cmake ..

make

make install

10. libiconv

很多的程序安装都需要这个软件包,也许你已经安装好了,但是系统在编译的时候找不到,可以设置

./configure --with-libiconv=/usr/local/lib

告诉系统他的位置,从而成功编译。


libiconv的介绍:

由于历史的原因,往往是国际化文本编码使用的语言或国家相关的字符编码。随着因特网的出现和互访频繁,文本跨越国家 - 甚至观看了从国外的网页是一个“文本交换”在这种情况下 - 这些编码之间的转换已成为重要的的。他们也成为一个问题,在许多其他的编码,因为这是一个编码中存在的许多字符缺席。为了解决这个烂摊子,Unicode编码已创建。它是所有其他的超级编码,因此,新的文本格式,如XML??的默认编码。

尽管如此,许多计算机仍然在语言环境中,与传统的字符编码(有限)。某些程序,如邮寄和网络浏览器,必须能够以一个给定的文本编码和用户的编码之间转换。其他程序内部存储在Unicode字符串,便于内部处理,需要内部的字符串表示形式(Unicode)和外部的字符串表示形式(传统的编码)之间的转换,当他们正在做的I / OGNUlibiconv的是一个应用程序的两种转换库。

安装方法: ./configure && make && make install

我想安装完成这些程序后,您应该赞同

程序的90%是依靠库(library)来完成的了吧! 至少octave就是如此!

衷心希望数学专业学生学习fortran,学习这些最基层的算法,从而完成数学工作,更希望有更多的中国数学可以多贡献一些基础的算法学库,中国的大学如果每个大学出一个,那就是个天文数字,我们航天系统也就不至于用windows了!

古代中国的天文学(日历官员)可没有windows可用阿!

而不是依靠octave,sagemath这些高度集成的软件来完成,这些软件是给工科,工程学,等其他非数学专业的应用工程师使用的!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读