GNU Scientific Library: відмінності між версіями
[неперевірена версія] | [перевірена версія] |
мНемає опису редагування |
|||
Рядок 67: | Рядок 67: | ||
=== Підтримка C++ === |
=== Підтримка C++ === |
||
GSL можна використовувати в класах [[C++]], але без використання вказівників методів класів, |
GSL можна використовувати в класах [[C++]], але без використання вказівників методів класів, оскільки тип ''вказівника до функції-методу'' відрізняється від типу ''вказівника на функцію''<ref>[http://www.parashift.com/c++-faq-lite/pointers-to-members.html#faq-33.1 pointer to member function]</ref>. Потрібно використовувати вказівники на статичні фунції або [[функтор]]и. Існують також упаковки функцій GSL в класи C++<ref>[http://cholm.home.cern.ch/cholm/misc/#gslmm C++ wrappers for GSL]</ref>, але більшість з них має нерегулярну підтримку. |
||
== Приклад == |
== Приклад == |
Версія за 11:58, 8 лютого 2012
Тип | бібліотека і пакунок 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], але більшість з них має нерегулярну підтримку.
Приклад
Наведена програма обраховує значення функії Бесселя від 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
Виноски
- ↑ а б в г д Free Software Directory
- ↑ pointer to member function
- ↑ C++ wrappers for GSL
- ↑ http://www.gnu.org/software/gsl/manual/html_node/Using-the-library.html