GNU Scientific Library (GSL) es una biblioteca escrita en C, destinada a cálculos numéricos en matemáticas y ciencia, distribuida bajo la licencia GNU GPL.

Incorpora, entre otras, rutinas para el manejo de números complejos, funciones elementales y funciones especiales, combinatoria, álgebra lineal, integración y derivación numéricas, transformada rápida de Fourier, transformada wavelet discreta, generación de números aleatorios y estadística.

Ejemplo El siguiente programa de ejemplo calcula el valor de la función de Bessel para 5:http://www.gnu.org/software/gsl/manual/html_node/Using-the-library.html

#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; } El programa de ejemplo debe ser enlazado a la biblioteca GSL durante la compilación: gcc $(gsl-config --cflags) example.c $(gsl-config --libs)

Aquí se muestra la salida, que debería ser correcta en precisión doble: J0(5) = -1.775967713143382920e-01

Características La biblioteca proporciona herramientas para: Funciones matemáticas básicas Números complejos Polinomios Funciones especiales Vectores y matrices Permutaciones Combinaciones Multiset Ordenación BLAS Álgebra lineal Eigenvectores Transformada rápida de Fourier Integración numérica Generación aleatoria de números Secuencias Quasi-aleatorias Distribuciones de números aleatorios Estadísticas Histogramas N-tuplas Integración de Monte Carlo Simulated annealing Ecuaciones diferenciales ordinarias Interpolación Derivación numérica Aproximaciones de Chebyshev Aceleración de Series Transformada discreta de Hankel Búsqueda de raíces en una y varias dimensiones Minimización en una y varias dimensiones Medida de mínimos cuadrados Medida de mínimos cuadrados no lineales Constantes Físicas Aritmética de punto flotante IEEE

Soporte para C++ La GSL se puede usar en las clases de C++, pero sin usar punteros a "funciones miembro" o métodos, porque el tipo de los punteros a métodos es diferente del de puntero a función.pointer to member function En su lugar deben usarse punteros a funciones estáticas. Están disponibles los encapsulados de C++ para la GSL, aunque hay muchos que no han sido mantenidos regularmente.

Referencias

Enlaces externos Manual en inglés

Categoría:Software matemático Categoría:Software de análisis numérico Categoría:Bibliotecas de C Categoría:Software del Proyecto GNU