GNU Scientific Library
-
Медіафайли у Вікісховищі
GNU Scientific Library (GSL) — бібліотека математичних підпрограм, написана на мові C, частина проекта GNU, розповсюджується під GNU General Public License. Бібліотека призначена для проведення прикладних та наукових математичних розрахунків.
Можливості
Бібліотека містить підпрограми, які охоплюють наступні області математичних обчислень
- Елементарні функції
- Комплексні числа
- Многочлени
- Спеціальні функції
- Вектори та матриці
- Перестановки
- Комбінаторика
- Мультимножини
- Сортування
- BLAS
- Лінійна алгебра
- Задачі на власні значення
- Швидке перетворення Фур'є
- Чисельне інтегрування (на основі QUADPACK)
- Генерація випадкових чисел
- Квазі-випадкові послідовності
- Розподіли ймовірності
- Статистика
- Гістограми
- Кортежі
- Інтегрування методом Монте-Карло
- Імітація відпалу
- Звичайні диференціальні рівняння
- Інтерполяція
- Чисельне диференціювання
- Наближення Чебишова
- Покращення збіжності рядів
- Дискретне перетворення Ганкеля
- Знаходження коренів рівнянь, одновимірне та багатовимірне
- Мінімізація, одновимірна та багатовимірна
- Метод найменших квадратів
- Нелінійний метод найменших квадратів
- Фізичні константи
- Дійсна арифметика за стандартом IEEE 754
- Дискретне вейвлет-перетворення
Підтримка C++
GSL можна використовувати в класах C++, але без використання вказівників методів класів, оскільки тип вказівника до функції-методу відрізняється від типу вказівника на функцію[2]. Потрібно використовувати вказівники на статичні функції або функтори. Існують також упаковки функцій GSL в класи C++[3], але більшість з них має нерегулярну підтримку.
Підтримка Fortran
Існує Фортран-обгортка до бібліотеки (FGSL[4]) котра надає об'єктно-орієнтований інтерфейс для програм на сучасному Фортрані (90-2008). Пакет розповсюджується за ліцензією GPL. Оновлюється регулярно але підтримка всіх можливостей GSL в FGSL поки що наштовхується на неповну підтримку компіляторами останнього стандарту мови фортран.
Приклад
Наведена програма обраховує значення функції Бесселя від 5[5]:
#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
Виноски
- ↑ а б в г д A Bibliographic Scan of Digital Scholarly Communication Infrastructure — Educopia Institute, 2020.d:Track:Q2470288d:Track:Q30289432
- ↑ pointer to member function. Архів оригіналу за 13 жовтень 2004. Процитовано 2 вересень 2011.
- ↑ C++ wrappers for GSL. Архів оригіналу за 29 січня 2015. Процитовано 2 вересня 2011.
- ↑ FGSL. Архів оригіналу за 20 серпня 2012. Процитовано 21 червня 2012.
- ↑ Архівована копія. Архів оригіналу за 2 вересня 2011. Процитовано 2 вересня 2011.
{{cite web}}
: Обслуговування CS1: Сторінки з текстом «archived copy» як значення параметру title (посилання)
- п
- о
- р
![](http://upload.wikimedia.org/wikipedia/commons/thumb/2/22/Heckert_GNU_white.svg/64px-Heckert_GNU_white.svg.png)
забезпечення