Hoy ha salido la segunda versión de GNU Scientific Library (GSL), una biblioteca de funciones matemáticas para C y C++.
Scientific Library es una biblioteca con licencia GPL que incluye en torno a 1000 funciones matemáticas. Algunas de esas rutinas permiten trabajar con números complejos, funciones especiales, calcular interpolación, obtener números aleatorios, manipular matrices y un largo etcétera.
GNU Scientific Library 2.0 viene con cuatro nuevas funciones:
· Matrices dispersas. Se trata de matrices de grandes dimensiones en la que la mayoría de sus elementos valen cero.
· Mínimos cuadrados regularizados.
· Interpolación bilineal y bicúbica.
· Se ha añadido el método Steffen de interpolación monótona.
Además se ha incluido un nuevo solucionador para mínimos cuadrados no lineales llamado ‘lmniel’ pensado especialmente para manejar una gran cantidad de datos.
El uso de las funciones es tan sencillo como incluir la biblioteca al código y llamar a la función deseada. Un ejemplo de programa es este:
#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; }
Con este código se calcula la función de Bessel J_0(x) para x=5 y arroja un resultado de doble precisión.
La biblioteca está escrita en ANSI C de forma que cumpla con la norma C89 lo que significa que no hace uso de ninguna extensión fuera de ANSI. Si alguna característica de la norma no funciona correctamente en alguna arquitectura de procesador, la biblioteca excluirá las funciones relacionadas a la hora de compilar. Así se evita obtener programas que den resultados incorrectos.
Para conocer todos los cambios de GNU Scientific Library 2.0 puedes visitar el anuncio de la versión. La biblioteca se puede descargar desde aquí. Toda la documentación así como las instrucciones para compilar programas que hagan uso de GSL con gcc se puede consultar en esta página. Vía Phoronix.