GNU Scientific Library
Autor | The GNU Project |
---|---|
Aktualna wersja stabilna | 2.8 (25 maja 2024) [±] |
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
[edytuj | edytuj kod]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
[edytuj | edytuj kod]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++
[edytuj | edytuj kod]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
[edytuj | edytuj kod]- ↑ GNU Scientific Library – Reference Manual: An Example Program [online], www.gnu.org [dostęp 2017-11-23] .
- ↑ [30] Pointers to member functions, C++ FAQ Lite [online], www-igm.univ-mlv.fr [dostęp 2017-11-23] .
- ↑ Christian Holm CHRISTENSEN @ CERN - C++ packages [online], cholm.home.cern.ch [dostęp 2017-11-23] [zarchiwizowane z adresu 2015-01-29] .