当前位置:   article > 正文

ubuntu 10.04 安装itpp库方法_libblas-dev

libblas-dev

装了一天的itpp库,遇到各种bug,终于在今天上午大功告成。有点儿小兴奋,写个文档在这里Mark一下,以备将来使用,也为后人指路。微笑

我的环境:ubuntu10.04   fftw-3.3   lapack-3.3.1   itpp-4.2
请先安装gfortran

sudo apt-get install gfortran

itpp:http://itpp.sourceforge.net/stable/index.html

BLAS:http://www.netlib.org/blas/

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

一个比较有用的链接:http://blog.c114.net/html/83/496683-65006.html

大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑

好,下面开始进入正题。

1、下载itpp依赖的三个包,BLAS、LAPACK、FFTW;

2、编译上述三个包,其中,一定要在编译完成BLAS后在编译LAPACK,因为LAPACK的testing包会用到BLAS库;

3、编译完成后,确认你生成了三个.a文件(Linux静态库文件),三个.a文件的文件名为,blas_LINUX.a,lapack_LINUX.a,tmglib_LINUX.a;

4、为上述三个.a文件建立链接,命令如下

  1. sudo ln -s */? /usr/local/lib/%
  2. sudo ln -s */? /usr/lib/%
  3. #*表示那三个文件的路径,?表示那个个.a文件,%表示对应的静态库名(libblas.a,liblapack.a,libtmglib.a)
当然,你把这三个文件重命名了,拷贝到/usr/local/lib和/usr/lib下也可以;

5、安装libblas-dev和liblapack-dev,这两个包应该是blas库和lapack的驱动文件,我在这里耽误的时间太多了大哭

sudo apt-get install libblas-dev liblapack-dev

6、cd到itpp的文件夹,执行下列命令

./configure --with-blas=/usr/local/lib/libblas.a --with-lapack=/usr/local/lib/liblapack.a

make
sudo make install

最后,

make check

7、体验自己编译好的itpp库

建立一个.cpp文件,将以下内容写入

  1. #include <itpp/itbase.h>
  2. using namespace itpp;
  3. //These lines are needed for use of cout and endl
  4. using std::cout;
  5. using std::endl;
  6. int main()
  7. {
  8. //Declare vectors and matricies:
  9. vec a, b, c;
  10. mat A, B;
  11. //Use the function linspace to define a vector:
  12. a = linspace(1.0, 2.0, 10);
  13. //Use a string of values to define a vector:
  14. b = "0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0";
  15. //Add two vectors:
  16. c = a + b;
  17. //Print results:
  18. cout << "a = " << a << endl;
  19. cout << "b = " << b << endl;
  20. cout << "c = " << c << endl;
  21. //Use a string to define a matrix:
  22. A = "1.0 2.0;3.0 4.0";
  23. //Calculate the inverse of matrix A:
  24. B = inv(A);
  25. //Print results:
  26. cout << "A = " << A << endl;
  27. cout << "B = " << B << endl;
  28. //Exit program:
  29. return 0;
  30. }

执行

g++ -o *** *.cpp -litpp
#***为编译生成的文件的文件名,*为你建立的.cpp的名称
 

如果一切顺利,会有如下结果

a = [1 1.11111 1.22222 1.33333 1.44444 1.55556 1.66667 1.77778 1.88889 2]
b = [0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1]
c = [1.1 1.31111 1.52222 1.73333 1.94444 2.15556 2.36667 2.57778 2.78889 3]
A = [[1 2]
 [3 4]]
B = [[-2 1]
 [1.5 -0.5]]

PS:7中的源码和结果摘自: http://itpp.sourceforge.net/stable/vector__and__matrix.html

大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑大笑

附录:BLAS、LAPACK、FFTW包的安装

1、BLAS包的安装

下载解压后,cd到文件件,执行

make
2、LAPACK包的安装

下载解压后,cd到文件夹,将1中生成的blas_LINUX.a拷贝到文件夹,依次执行

mv make.inc.example make.inc
make

3、FFTW包的安装

下载解压后,cd到文件夹,依次执行

./configure
make
sudo make install

如果有什么问题,请在下面留言,谢谢!


补充IT++库的一些用途

IT++是一个数学,信号处理和通信类功能的C++库。它的主要用途是模拟通信系统,并进行研究相关领域的通信。它综合了Matlab的功能和C的速度,适合于信号处理等领域。

功能和特点
模板阵列和堆叠的集装箱类
命令和文件的论点分析器
模板向量和矩阵类
稀疏向量和矩阵类
载体功能和矩阵类
矩阵分解等特征 
求解线性方程组 
随机数代
二进制和伽罗瓦类型(标量,矢量和矩阵)
一体化的一维职能
无条件的非线性优化 
统计类
过滤功能和类
频域滤波
FFT算法,理论,变换,和Hadamard变换
时域和频域窗口
评估和寻找根源的多项式(逆行动)
滤波器的设计功能
快速独立分量分析 
矢量调制器(如OFDM和MIMO )
OFDM系统和CDMA调制器 
多径信道(包括频率单位和频率选择性)
海明,格雷,CRC码
基于事件的仿真类 
信号和简化语法 
TCP连接客户端和服务器 
选择性重复传
标量化和矢量量化类
高斯混合模型 
阅读和保存几种不同的音频文件格式 
阅读和保存不同的图像格式 
二进制文件格式,最基础的IT + +类型 
定点标量,矢量和矩阵类型






                
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/316336
推荐阅读
相关标签
  

闽ICP备14008679号