GNU Scientific Library: відмінності між версіями
[перевірена версія] | [неперевірена версія] |
Zmi007 (обговорення | внесок) м →Приклад: стильові правлення |
|||
Рядок 87: | Рядок 87: | ||
} |
} |
||
</source> |
</source> |
||
Програма приклад |
Програма приклад компілюється з підключенням GSL: |
||
<pre> |
<pre> |
||
gcc $(gsl-config --cflags) example.c $(gsl-config --libs) |
gcc $(gsl-config --cflags) example.c $(gsl-config --libs) |
Версія за 23:16, 15 лютого 2014
Тип | бібліотека і пакунок GNUd |
---|---|
Розробники | Проект GNU |
Стабільний випуск | 1.15 (6 травня 2011) |
Платформа | багатоплатформенна |
Операційна система | GNU/Linux[d][1], BSD[d][1], Windows[1], macOS[1] і GNU/Hurd[d][1] |
Мова програмування | C |
Ліцензія | GNU General Public License |
Репозиторій | git.savannah.gnu.org/cgit/gsl.git |
Вебсайт | gnu.org/software/gsl/ |
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