GNU Scientific Library
| ||
Autor | The GNU Project | |
Aktualna wersja stabilna | 2.7 (1 czerwca 2021) [±] | |
---|---|---|
Platforma sprzętowa | Multi-platform | |
Rodzaj | Biblioteka numeryczna | |
Licencja | GPL | |
Strona internetowa |
GNU Scientific library – biblioteka funkcji obliczeniowych i naukowych dla C i C++ dostępna na zasadach GPL. Biblioteka jest częścią Projektu GNU.
Przykład użycia
Poniższy przykładowy program oblicza wartość funkcji Bessela dla argumentu 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;
}
Program musi być skonsolidowany z biblioteką GSL:
gcc $(gsl-config --cflags) example.c $(gsl-config --libs)
Wynik pracy programu jest pokazany poniżej (powinien być poprawny dla podwójnej precyzji):
J0(5) = -1.775967713143382920e-01
Możliwości
Biblioteka zawiera ponad tysiąc funkcji, dotyczących:
- liczb rzeczywistych i zespolonych
- wektorów i macierzy
- wielomianów
- operacji na zbiorach
- algebry liniowej
- wartości własnych
- transformat Fouriera i Hankela
- liczb pseudolosowych
- statystyki
- całkowania Monte Carlo
- równań różniczkowych
- interpolacji
- istotnych stałych fizycznych
- i wiele innych
Wsparcie dla C++
Biblioteka GSL może być używana w C++, ale nie może używać wskaźników do metod lecz tylko wskaźników do zwykłych funkcji[2]. Zamiast tego, programiści C++ mogą użyć statycznych funkcji przekierowujących do właściwej metody klasy. Adres używany do statycznych metod w C++ jest kompatybilny z GSL. Dostępne są gotowe wrappery C++ do GSL[3].
Przypisy
- ↑ GNU Scientific Library – Reference Manual: An Example Program, www.gnu.org [dostęp 2017-11-23] .
- ↑ [30] Pointers to member functions, C++ FAQ Lite, www-igm.univ-mlv.fr [dostęp 2017-11-23] .
- ↑ Christian Holm CHRISTENSEN @ CERN - C++ packages, cholm.home.cern.ch [dostęp 2017-11-23] [zarchiwizowane z adresu 2015-01-29] .