GNU Scientific Library
| Розробник(и) | Проект GNU |
|---|---|
| Стабільний випуск | 1.15 (6 травня 2011) |
| Написано на | C |
| Платформа | багатоплатформенна |
| Ліцензія | GNU General Public License |
| Сайт | http://www.gnu.org/software/gsl/ |
GNU Scientific Library (GSL) — бібліотека математичних підпрограм, написана на мові C, частина проекта GNU, розповсюджується під GNU General Public License. Бібліотека призначена для проведення прикладних та наукових математичних розрахунків.
Зміст |
Можливості [ред.]
Бібліотека містить підпрограми, які охоплють такі області математичних обчислень
- Елементарні функції
- Комплексні числа
- Многочлени
- Спеціальні функції
- Вектори та матриці
- Перестановки
- Комбінаторика
- Мультимножини
- Сортування
- BLAS
- Лінійна алгебра
- Задачі на власні значення
- Швидке перетворення Фур'є
- Чисельне інтегрування (на основі QUADPACK)
- Генерація випадкових чисел
- Квазі-випадкові послідовності
- Розподіли ймовірності
- Статистика
- Гістограми
- Кортежі
- Інтегрування методом Монте-Карло
- Імпітація відпалу
- Звичайні диференціальні рівняння
- Інтерполяція
- Чисельне диференціювання
- Наближення Чебишова
- Покращення збіжності рядів
- Дискретне перетвонення Ганкеля
- Знаходження коренів рівнянь, одновимірне та багатовимірне
- Мінімізація, одновимірна та багатовимірна
- Метод найменших квадратів
- Нелінійний метод найменших квадратів
- Фізичні константи
- Дійсна арифметика за стандартом IEEE 754
- Дискретне вейвлет-перетворення
Підтримка C++ [ред.]
GSL можна використовувати в класах C++, але без використання вказівників методів класів, оскільки тип вказівника до функції-методу відрізняється від типу вказівника на функцію[1]. Потрібно використовувати вказівники на статичні фунції або функтори. Існують також упаковки функцій GSL в класи C++[2], але більшість з них має нерегулярну підтримку.
Підтримка Fortran [ред.]
Існує відкрита бібліотека FGSL[3] котра надає об'єктно-орієнтований інтерфейс для програм на сучасному фортрані (90-2008). Пакет розповсюджується за ліцензією GPL. Обновлюється регулярно але відображення всіх можливостей GSL в FGSL поки що наштовхується на неповну підтримку компіляторами останнього стандарту мови фортран.
Приклад [ред.]
Наведена програма обраховує значення функії Бесселя від 5[4]:
#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

