GNU Scientific Library

GNU Scientific library
logo
Autor The GNU Project
Aktualna wersja stabilna 2.7.1
(30 listopada 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:

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

  1. GNU Scientific Library – Reference Manual: An Example Program [online], www.gnu.org [dostęp 2017-11-23] .
  2. [30] Pointers to member functions, C++ FAQ Lite [online], www-igm.univ-mlv.fr [dostęp 2017-11-23] .
  3. Christian Holm CHRISTENSEN @ CERN - C++ packages [online], cholm.home.cern.ch [dostęp 2017-11-23] [zarchiwizowane z adresu 2015-01-29] .

Linki zewnętrzne

Zobacz publikację
Programowanie w systemie UNIX/GSL w Wikibooks
Zobacz multimedia związane z tematem: GNU Scientific Library
  • Strona domowa projektu
  • p
  • d
  • e
Historia
Licencje
Programy
Postacie
  • Robert J. Chassell
  • Loïc Dachary
  • Ricardo Galli
  • Georg C. F. Greve
  • Federico Heinz
  • Benjamin Mako Hill
  • Bradley M. Kuhn
  • Eben Moglen
  • Richard Stallman
  • John Sullivan
  • Leonard H. Tower Jr.

GNU’s not a gnu