Toutes les actualités, formations et événements

GSL

01 / 01 / 1970,

Actualité

GSL pour GNU Scientific Library.

C'est un bibliothèque écrite en C fournissant des outils de calculs numériques en mathématiques appliqués. La GSL fait partie du projet GNU et est distribuée sous GNU General Public License.



page officielle : http://www.gnu.org/software/gsl/
description wikipédia : http://fr.wikipedia.org/wiki/GNU_Scientific_Library

The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. It is free software under the GNU General Public License.
The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite.

doc : http://www.gnu.org/software/gsl/manual/html_node/
The current version is GSL-1.10. It was released on 21 September 2007. This is a stable release. The complete range of subject areas covered by the library includes,

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    

 

Exemple de programme :

/*
* Exemple d'utilisation de générateurs de nombres aléatoires de la GSL
*/

// Pour le cout et endl
#include

// Pour la fonction time utilisée pour générer la graine
#include

// Pour les générateurs de nombres de la GSL
#include
#include

using std::cout;
using std::endl;

int main(int argc, char *argv[]) {
gsl_rng *r; // Générateur de nombres aléatoires

// Creation du générateur (ici, Mersenne Twister)
r = gsl_rng_alloc(gsl_rng_mt19937);

// Initialisation de la graine
gsl_rng_set(r, time(NULL));

// Génération de 20 nombres suivant la loi de Gauss
double sigma = 1;

cout << "Loi de Gauss avec sigma= " << sigma << endl;
for(int i = 0; i < 20; i++)
cout << i << " : " << gsl_ran_gaussian(r, sigma) << endl;

// Génération de 20 nombres suivant la loi log-normale
double zeta = 1;

cout << endl << "Loi log-normale avec sigma= " << sigma;
cout << " et zeta=" << zeta << endl;
for(int i = 0; i < 20; i++)
cout << i << " : " << gsl_ran_lognormal(r, zeta, sigma) << endl;

// Destruction du générateur
gsl_rng_free(r);
}

Compiler le programme
avec g++ : g++ -o testGsl testGsl.cpp -W -Wall -lgsl
avec ipcp : ipcp -o testGsl testGsl.cpp -W -Wall -lgsl

Executer le programme

Une fois votre programme compilé, vous allez vouloir l'exécuter, et une erreur indiquant que le programme ne trouve pas les librairies nécessaires à son fonctionnement apparaît. Nous devons modifier la variable d'environnement référençant les librairies afin de lui indiquer où elles se trouvent. Bien évidemment, à chaque nouvelle session, vous devrez taper cette commande. Pour éviter cela, nous allons directement placer cette commande dans le fichier .bashrc se trouvant à la racine de notre compte ou dans le fichier de soumission.

# Ajout du chemin de la librairie
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
 
 

Toutes les actualités, formations et événements