GNU Scientific Library (GSL) — бібліотека математичних підпрограм, написана на мові C, частина проекта GNU, розповсюджується під GNU General Public License. Бібліотека призначена для проведення прикладних та наукових математичних розрахунків.

GNU Scientific Library
Official gnu.svg
Тип бібліотека і пакунок GNUd
Розробник Проект GNU
Стабільний випуск 1.15 (6 травня 2011)
Версії 2.6 (20 серпня 2019)[1]
Репозиторій git.savannah.gnu.org/cgit/gsl.git
Платформа багатоплатформенна
Операційна система GNU/Linux[d][2], BSD[d][2], Microsoft Windows[2], macOS[2] і GNU/Hurdd[2]
Написано на C
Ліцензія GNU General Public License
Вебсайт gnu.org/software/gsl/

CMNS: GNU Scientific Library у Вікісховищі

Можливості

Бібліотека містить підпрограми, які охоплють такі області математичних обчислень

Підтримка C++

GSL можна використовувати в класах C++, але без використання вказівників методів класів, оскільки тип вказівника до функції-методу відрізняється від типу вказівника на функцію[3]. Потрібно використовувати вказівники на статичні фунції або функтори. Існують також упаковки функцій GSL в класи C++[4], але більшість з них має нерегулярну підтримку.

Підтримка Fortran

Існує відкрита бібліотека FGSL[5] котра надає об'єктно-орієнтований інтерфейс для програм на сучасному фортрані (90-2008). Пакет розповсюджується за ліцензією GPL. Обновлюється регулярно але відображення всіх можливостей GSL в FGSL поки що наштовхується на неповну підтримку компіляторами останнього стандарту мови фортран.

Приклад

Наведена програма обраховує значення функії Бесселя від 5[6]:

#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;
}

Програма приклад повинна бути відкомпельована з підключенням GSL:

gcc $(gsl-config --cflags) example.c $(gsl-config --libs)

Наведений нижче результат повинен бути правильним у межах подвійної точності:

J0(5) = -1.775967713143382920e-01

Виноски