一:首先要解决的问题是在linux系统下安装ITPP。
IT++ is a C++ library of mathematical, signal processing and communication classes and functions。也就是说有了这个库,用C++编写通信仿真程序的方便程度接近于matlab。具体介绍和文件下载可以上。Matlab用的好好的,干嘛要用IT++?水木清华论坛里一个说的很清楚,“由于Matlab效率太低(除了可以验证算法外),所以需要更快的仿真平台。最好的平台无非就是自己写的C/C++程序,以及利用这个行业别人已经做好的库it++,非常方便,用它感觉就像是在C++下的Matlab。当然效率跟前者相比是不可同日而语。
1、Windows环境
, 它提供“100% free powerful solution”。因为IT++要用的是MKL的三个libraries:LAPACK BLAS FFTW,这三个库是可以免费下载到的。该网站提供了在VS2005下安装IT++的步骤。只要按照网站说明进行安装,基本没有什么问题。
LAPACK:LAPACK,其名为Linear Algebra PACKage的缩写,是一以Fortran编程语言写就,用于数值计算的函式集。
BLAS,全称Basic Linear Algebra Subprograms,即基础线性代数子程序库,里面拥有大量已经编写好的关于线性代数运算的程序。
FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散的标准C语言程序集。
可参见:
2、Linux环境
可参见:
0)gfortran
sudo apt-get install gfortran
1)fftw ---http://www.fftw.org/
安装参见
sudo apt-get install libfftw3-dev //安装libfftw3-dev
2)blas ---
安装参见
sudo apt-get install libblas-dev //安装libblas-dev
3)lapack ---
安装参见
一定要在编译完成BLAS后在编译LAPACK,因为LAPACK的testing包会用到BLAS库
sudo apt-get install liblapack-dev //安装liblapack-dev
下载组件:
1、下载itpp依赖的三个包,BLAS、LAPACK、FFTW;
itpp:
BLAS:
LAPACK:
一个比较有用的链接:http://blog.c114.net/html/83/496683-65006.html
在home/ffh下面新建一个ITPP文件夹,然后将三个安装包拷贝进去。
1.1安装FFTW
1)gzip –cd fftw-3.3.2.tar.gz | tar xf - //gzip 是在 Linux 系统中经常使用的一个对文件进行压缩和解压缩的命令
2)cd fftx-3.1.2
3)./configure //./configure是源代码安装的第一步,主要的作用是对即将安装的软件进行配置,检查当前的环境是否满足要安装软件的依赖关系
4)make //make工具则可自动完成编译工作,并且可以只对程序员在上次编译后修改过的部分进行编译。
5)make check //make check只是在你安装之前对你的环境以及源码等进行检测以确保编译安装正确
6)make install
7)make clean //make clean仅仅是清除之前编译的可执行文件及配置文件。
8)make distclean //要清除所有生成的文件。
1.2安装blas包
1)gzip -cd blas.agz | tar xf -
2) cd BLAS
3)make
#make //就会生成一个 blas_LINUX.a文件。
1.3安装lapack包
1) gzip –cd lapack-3.4.2.tgz | tar xf -
2) cd lapack-3.1.1
3) cp make.inc.example make.inc
4) gedit make.inc
5) gedit Makefile
如果之前没安装blas(必须先安装blas库,因为安装次库要用到blas库):
include make.inc
all: lapack_install lib lapack_testing blas_testing
lib: lapacklib tmglib
#lib: blaslib lapacklib tmglib
clean: cleanlib cleantesting cleanblas_testing
. . . .
修改成:
include make.inc
all: lapack_install lib lapack_testing blas_testing
#lib: lapacklib tmglib
lib: blaslib lapacklib tmglib
clean: cleanlib cleantesting cleanblas_testing
. . . .
5)make
编译完成后,确认你生成了三个.a文件(Linux静态库文件),三个.a文件的文件名为,blas_LINUX.a,lapack_LINUX.a,tmglib_LINUX.a;
为上述三个.a文件建立链接,命令如下
- sudo ln -s */? /usr/local/lib/%
- sudo ln -s */? /usr/lib/%
- #*表示那三个文件的路径,?表示那个个.a文件,%表示对应的静态库名(libblas.a,liblapack.a,libtmglib.a)
当然,你把这三个文件重命名了,拷贝到/usr/local/lib和/usr/lib下也可以;(有的库链接可能已经有了,试试看)
二:安装ITPP库
安装itpp
1) bzip2 -cd itpp-.tar.bz2 | tar xf –
2) cd itpp-
3) ./configure
4) make
5) make check
结果应该是全部PASSED!
6) make install可能出现错误,说permition denied,此时改为 sudo make install就可成功。
7) make clean
8) make distclean
最后,使用g++来编译实例,验证是否安装成功。
cdgedit .bashrc在文件开头处加入:export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
安装成功!
三:体验自己的IT++库
编辑一下代码
体验自己编译好的itpp库
建立一个.cpp文件,将以下内容写入
编译:
-
- g++ -o *** *.cpp -litpp
- #***为编译生成的文件的文件名,*为你建立的.cpp的名称
运行:./test
结果:
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]]
附录:
附录:BLAS、LAPACK、FFTW包的安装
1、BLAS包的安装
下载解压后,cd到文件件,执行
make
2、LAPACK包的安装
下载解压后,cd到文件夹,将1中生成的blas_LINUX.a拷贝到文件夹,依次执行
mv make.inc.example make.inc
make3、FFTW包的安装
下载解压后,cd到文件夹,依次执行
./configure
makesudo make installmv make.inc.example make.inc
make大功告成!