GNU Scientific Library
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.
GNU Scientific Library | ||
---|---|---|
Información general | ||
Tipo de programa | Biblioteca numérica | |
Desarrollador | proyecto GNU | |
Lanzamiento inicial | 1996 | |
Licencia | GNU GPL | |
Información técnica | ||
Programado en | C | |
Versiones | ||
Última versión estable | 2.8 ( 25 de mayo de 2024) | |
Enlaces | ||
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
editarEl siguiente programa de ejemplo calcula el valor de la función de Bessel para 5:[1]
#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
editarLa 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++
editarLa 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.[2] En su lugar deben usarse punteros a funciones estáticas. Están disponibles los encapsulados de C++ para la GSL,[3] aunque hay muchos que no han sido mantenidos regularmente.
Referencias
editar- ↑ http://www.gnu.org/software/gsl/manual/html_node/Using-the-library.html
- ↑ pointer to member function Archivado el 13 de octubre de 2004 en Wayback Machine.
- ↑ «C++ wrappers for GSL». Archivado desde el original el 29 de enero de 2015. Consultado el 22 de enero de 2010.