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: