windows下GSL的配置
来源:互联网 发布:用雪糕棍做房子数据 编辑:程序博客网 时间:2024/05/17 23:57
一、GSL介绍
GNU科学计算函数库GSL(GNU Scientific Library)是一个强大的C/C++数值计算函数库,它是一个自由软件,是GNU项目软件的一个部分,遵循GPL协议。GSL是一个为C和C++程序员提供的科学数值运算库。该科学计算库异常强大,函数库提供了大量的数值计算程序
,如随机函数、特殊函数和拟合函数等等,整个函数库大约有1000多个函数,几乎涵盖了科学计算的各个方面。提供了如下方面的支持:
Complex Numbers Roots of Polynomials Special Functions
Vectors and Matrices Permutations Sorting
BLAS Support Linear Algebra Eigensystems
Fast Fourier Transforms Quadrature Random Numbers
Quasi-Random Sequences Random Distributions Statistics
Histograms N-Tuples Monte Carlo Integration
Simulated Annealing Differential Equations Interpolation
Numerical Differentiation Chebyshev Approximation Series Acceleration
Discrete Hankel Transforms Root-Finding Minimization
Least-Squares Fitting Physical Constants IEEE Floating-Point
Discrete Wavelet Transforms Basis splines
该函数库的主页是:http://www.gnu.org/software/gsl/gsl.html。不过遗憾的是原始GSL并不支持不支持windows平台,可所幸的是有人做了GSL在windows上的移植工作,详见http://gnuwin32.sourceforge.net/packages/gsl.htm,目前版本是1.8。
二、下载gsl
1、从http://gnuwin32.sourceforge.net/packages/gsl.htm下载Complete package, except sources和Sources两个exe文件。
三、安装
1、 首先安装从http://gnuwin32.sourceforge.net/packages/gsl.htm下载的两个文件gsl-1.8.exe和gsl-1.8-src.exe。
四、设置Visual C++ 6.0编译环境
1、生成lib文件。发现安装目录lib下并没有libgsl.lib,libgslcblas.lib这两个文件,倒是有两个扩展名为def和a(linux下库文件包格式)的文件,因此必须进行转换。
l 开始菜单,点击运行,输入cmd。
l 进入gsl库的lib目录下依次输入以下两条语句:
lib /machine:i386 /def:libgsl.def
lib /machine:i386 /def:libgslcblas.def
再看lib目录下,发现有了libgsl.lib,libgslcblas.lib这两个文件。
2、将x:/Program Files/GnuWin32l/bin中的libgsl.dll和libgslcblas.dll复制到x:/VC98/Bin;将/include整个Gsl目录复制到x:/VC98/include下;/lib目录下的所有.lib文件全部复制到x:/VC98/Lib下。
3、 新建一个工程用于测试,。然后在该项目的project-settings-link,在object/library modules中加入你用到的库文件,如libgsl.lib libgslcblas.lib,用空格隔开。
五、测试Gsl函数库
#define GSL_DLL#include <gsl/gsl_spline.h>#include <cstdio>#include <cstdlib>#include <cmath>#include <gl/glut.h>#include <gl/gl.h>#pragma comment(lib, "gsl.lib")#pragma comment(lib, "gslcblas.lib")void Display(){ glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); const size_t n = 4; double x[] = {0,0.333336,0.666666,1}; double y[] = {0,0.5,0.9,0}; gsl_interp* interps[3] = {NULL,NULL,NULL}; interps[0] = gsl_interp_alloc(gsl_interp_linear,n); interps[1] = gsl_interp_alloc(gsl_interp_polynomial,n); interps[2] = gsl_interp_alloc(gsl_interp_cspline,n); gsl_interp_init(interps[0],x,y,n); gsl_interp_init(interps[1],x,y,n); gsl_interp_init(interps[2],x,y,n); gsl_interp_accel* acc = gsl_interp_accel_alloc(); glBegin(GL_LINE_STRIP); for(double t=0.0; t<=1.025; t+=0.025) { glColor3f(1,0,0); glVertex3f(t,gsl_interp_eval(interps[0],x,y,t,acc),0.0); } glEnd(); glBegin(GL_LINE_STRIP); for(double t=0.0; t<=1.025; t+=0.025) { glColor3f(0,1,0); glVertex3f(t,gsl_interp_eval(interps[1],x,y,t,acc),0.0); } glEnd(); glBegin(GL_LINE_STRIP); for(double t=0.0; t<=1.025; t+=0.025) { glColor3f(0,0,1); glVertex3f(t,gsl_interp_eval(interps[2],x,y,t,acc),0.0); } glEnd(); gsl_interp_accel_free(acc); gsl_interp_free(interps[0]); gsl_interp_free(interps[1]); gsl_interp_free(interps[2]); glutSwapBuffers();}int main(int argc, char** argv){ glutInit(&argc,argv); glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA); glutInitWindowSize(512,512); glutCreateWindow("GSL Interpolation"); glutDisplayFunc(Display); glClearColor(1,1,1,1); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); glTranslatef(-1,-1,0); glScalef(2,2,1); glMatrixMode(GL_PROJECTION); glLoadIdentity(); glViewport(0,0,512,512); glLineWidth(4.0); glutMainLoop(); return 0;}
运行结果:
说明Gsl函数库已经可以使用了。
- windows下GSL的配置
- windows下GSL的配置
- Windows下GSL的配置
- windows下GSL的配置
- windows下GSL的配置
- windows下GSL的配置
- windows下GSL的配置
- windows下GSL的配置
- 【转】windows下GSL的配置
- windows 下的GSL配置(转载)
- windows下安装配置GSL
- windows下的gsl(科学计算库)配置
- windows下boost,pthread,clapack,jpeg,gsl的配置
- C++科学计算库GSL在Windows下的配置
- GSL在VS 2010下的配置
- VS2008下配置GSL
- boost,pthread,clapack,jpeg,gsl在windows下配置方法
- windows 环境下使用GSL
- AcMore-1493(划分问题)
- umount: /mnt/cdrom: device is busy
- 2013年4月14日 22:46:03
- Java多线程技术初识——3. 线程安全问题
- AJAX笔试面试题
- windows下GSL的配置
- java参数传递
- Setup Building Environment for Android ICS/FireFox OS from and clean Ubuntu10.04 LTS
- 环境真的不是最重要的,所以我要更努力啊!!!
- 指数函数的另外一种实现
- WEB前端开发工程师面试题(一)
- apue文件环境
- qt 学习笔记第一章
- 服務程序