GNU Scientific Library (GSL): Difference between revisions
		
		
		
		
		
		Jump to navigation
		Jump to search
		
				
		
		
	
| No edit summary |  (Redirected page to GSL) Tag: New redirect | ||
| (9 intermediate revisions by 2 users not shown) | |||
| Line 1: | Line 1: | ||
| #REDIRECT[[GSL]] | |||
| The '''GNU Scientific Library''' (or '''GSL''') is a software library for numerical computations in applied mathematics and science. The GSL is written in the C programming language, but bindings exist for other languages as well. | |||
| '''Online-Documentation:''' http://www.gnu.org/software/gsl/ | |||
| '''Local-Documentation:''' | |||
| See 'info gsl', 'man gsl' and 'man gsl-config'. | |||
| '''Tips for compiling and linking:''' | |||
| Load the gsl module. After having loaded the gsl environment module, you can use several | |||
| environment variables to compile and link your application with the gsl library. | |||
| Your source code should contain preprocessor include statements with a gsl/ prefix, such as | |||
| <pre> #include <gsl/gsl_math.h></pre> | |||
| A typical compilation command for a source file example.c with the  | |||
| Intel C compiler icc is | |||
| <pre> $ icc -Wall -I$GSL_INC_DIR  -c example.c </pre> | |||
| The $GSL_INC_DIR environment variable points to location of  | |||
| the include path for the gsl header files. | |||
| The following command can be used to link the application with the  | |||
| gsl libraries, | |||
| <pre> $ icc -L$GSL_LIB_DIR -o example example.o -lgsl -lgslcblas -lm </pre> | |||
| The $GSL_LIB_DIR environment variable points to the location  | |||
| of the gsl libraries. | |||
| Also make sure to have the gsl module loaded before running applications build | |||
| with this library. | |||
| '''Example'''  | |||
| Create source code file 'intro.c': | |||
| {| style="width: 100%; border:1px solid #d0cfcc; background:#f2f7ff;border-spacing: 2px;" | |||
| | style="width:280px; text-align:center; white-space:nowrap; color:#000;" | | |||
| <source lang="c"> | |||
| #include <stdio.h> | |||
| #include <gsl/gsl_sf_bessel.h> | |||
| int main (void) | |||
| { | |||
|   double x = 5.0; | |||
|   double y = gsl_sf_bessel_J0 (x); | |||
|   printf ("J0(%g) = %.18e\n", x, y); | |||
|   return 0; | |||
| } | |||
| </source> | |||
| |} | |||
| Load the gsl module for the Intel compiler, compile, link and run the program: | |||
| <pre> | |||
| $ module load numlib/gsl/1.16-intel-13.1 | |||
| Loading module dependency 'compiler/intel/13.1'. | |||
| $ icc -Wall -I$GSL_INC_DIR  -c intro.c | |||
| $ icc -L$GSL_LIB_DIR -o intro intro.o -lgsl -lgslcblas -lm | |||
| $ ./intro | |||
| J0(5) = -1.775967713143382642e-01 | |||
| </pre> | |||
| [[Category: Numerical libraries]][[Category:bwUniCluster]] | |||
Latest revision as of 22:25, 4 February 2022
Redirect to: