Windows下使用GSL(GNU Scientific Library)

GSL的主页:http://www.gnu.org/software/gsl/,非windows版本的下载地址:ftp://ftp.gnu.org/gnu/gsl/

如题说说想在windows下使用GSL,有多种办法,这里只说说我试过并且成功的:


第一种:

安装 Cygwin,主页是:http://www.cygwin.com/。提供类linux环境并且自带GSL。


第二种:
1.下载windows版本的GSL。
GSL1.4下载:http://www6.in.tum.de/~kiss/WinGsl.htm
GSL多个版本下载(最高1.8):http://sourceforge.net/projects/gnuwin32/files/gsl/
GSL 1.13 for Windows下载:http://david.geldreich.free.fr/dev.html


2.安装GSL。假设安装位置在F:\Program Files\GnuWin32,则在VS中“工具”->“选项”->“项目和解决方案”->“VC++目录”中设置:“可执行文件”目录添加F:\Program Files\GnuWin32\bin;“包含文件”目录添加F:\Program Files\GnuWin32\include;库文件目录添加F:\Program Files\GnuWin32\lib即可。


3.最后来个例子:
#include <stdio.h>
#include <gsl/gsl_linalg.h>

#pragma comment(lib, "libgsl.a")
#pragma comment(lib, "libgslcblas.a")

////////////////////////////////////////////////////////////
// Solve Ax = b with LU and cholesky
int main(int argc, char **argv)
{
	printf("=========== tst2 ===========\n");
	double a_data[] = { 2,1,1,3,2,
		1,2,2,1,1,
		1,2,9,1,5,
		3,1,1,7,1,
		2,1,5,1,8 };

	double b_data[] = { -2,4,3,-5,1 };

	gsl_vector *x = gsl_vector_alloc (5);
	gsl_permutation * p = gsl_permutation_alloc (5);

	gsl_matrix_view m 
		= gsl_matrix_view_array(a_data, 5, 5);

	gsl_vector_view b
		= gsl_vector_view_array(b_data, 5);


	int s;

	gsl_linalg_LU_decomp (&m.matrix, p, &s);

	gsl_linalg_LU_solve (&m.matrix, p, &b.vector, x);

	printf ("x = \n");
	gsl_vector_fprintf(stdout, x, "%g");

	double a2_data[] = { 2,1,1,3,2,
		1,2,2,1,1,
		1,2,9,1,5,
		3,1,1,7,1,
		2,1,5,1,8 };

	double b2_data[] = { -2,4,3,-5,1 };
	gsl_matrix_view m2 = gsl_matrix_view_array(a2_data, 5, 5);
	gsl_vector_view b2 = gsl_vector_view_array(b2_data, 5);
	gsl_linalg_cholesky_decomp(&m2.matrix);
	gsl_linalg_cholesky_solve(&m2.matrix, &b2.vector, x);
	printf ("x = \n");
	gsl_vector_fprintf(stdout, x, "%g");

	gsl_permutation_free (p);
	gsl_vector_free(x);
	return 0;
}



参考1:http://blog.sina.com.cn/s/blog_721fcbfe0100nqq1.html
参考2:http://blog.csdn.net/flyingworm_eley/article/details/6517727

你可能感兴趣的:(windows,GSL)