ubuntu 10.04 安装itpp库方法

装了一天的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文件建立链接,命令如下

sudo ln -s */? /usr/local/lib/%
sudo ln -s */? /usr/lib/%

#*表示那三个文件的路径,?表示那个个.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文件,将以下内容写入

#include <itpp/itbase.h>

using namespace itpp;

//These lines are needed for use of cout and endl
using std::cout;
using std::endl;

int main()
{
  //Declare vectors and matricies:
  vec a, b, c;
  mat A, B;

  //Use the function linspace to define a vector:
  a = linspace(1.0, 2.0, 10);

  //Use a string of values to define a vector:
  b = "0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0";

  //Add two vectors:
  c = a + b;

  //Print results:
  cout << "a = " << a << endl;
  cout << "b = " << b << endl;
  cout << "c = " << c << endl;

  //Use a string to define a matrix:
  A = "1.0 2.0;3.0 4.0";

  //Calculate the inverse of matrix A:
  B = inv(A);

  //Print results:
  cout << "A = " << A << endl;
  cout << "B = " << B << endl;

  //Exit program:
  return 0;

}

执行

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 + +类型 
定点标量,矢量和矩阵类型






                
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值