Jump to content

Научная библиотека ГНУ

(Перенаправлено из Научной библиотеки Gnu )
Оригинальный автор(ы) Марк Галасси , Джеймс Тейлер, Брайан Гоф, Джерард Юнгман и многие другие.
Разработчик(и) Проект GNU
Первоначальный выпуск май 1996 г .; 28 лет назад ( 1996-05 )
Стабильная версия
2.8 [ 1 ]  Отредактируйте это в Викиданных / 25 мая 2024 г.
Репозиторий ftpmirror .gnu .org /gsl /
Написано в С
Тип Числовая библиотека
Лицензия 2007: GPL-3.0 или новее [ а ]
1996: GPL-2.0 или более поздняя версия [ б ]
Веб-сайт www .gnu .org /программное обеспечение /gsl /

Научная библиотека GNU (или GSL ) — это библиотека программного обеспечения для численных вычислений в прикладной математике и естественных науках . GSL написан на C ; оболочки доступны для других языков программирования. GSL является частью проекта GNU. [ 2 ] и распространяется по лицензии GNU General Public License .

История проекта

[ редактировать ]

Проект GSL был инициирован в 1996 году физиками Марком Галасси и Джеймсом Тейлером из Национальной лаборатории Лос-Аламоса . [ 3 ] Они стремились написать современную замену широко используемым, но несколько устаревшим библиотекам Фортрана , таким как Netlib . [ 4 ] Они выполнили общий дизайн и написали первые модули; Готовясь к этому, они привлекли к участию других ученых.

«Общую разработку библиотеки, а также разработку и реализацию основных модулей» выполнили Брайан Гоф и Джерард Юнгман. [ 3 ] Другими крупными участниками были Джим Дэвис , Рид Придхорски, М. Бут и Ф. Росси. [ 3 ]

Версия 1.0 была выпущена в 2001 году. В последующие годы библиотека расширялась очень медленно; как говорилось в документации, сопровождающих больше интересовала стабильность, чем дополнительная функциональность. Основная версия 1 закончилась выпуском 1.16 от июля 2013 г.; это было единственное публичное мероприятие за три года (2012–2014 гг.).

Активная разработка возобновилась с публикацией версии 2.0 в октябре 2015 года. Последняя версия 2.7 была выпущена в июне 2021 года.

Следующий пример программы вычисляет значение функции Бесселя первого рода и нулевого порядка для 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

Библиотека программного обеспечения предоставляет возможности для:

Привязки к языку программирования

[ редактировать ]

Поскольку GSL написан на C, можно легко предоставить оболочки для других языков программирования. Такие обертки в настоящее время существуют для

Поддержка С++

[ редактировать ]

GSL можно использовать в классах C++ , но не использовать указатели на функции-члены, поскольку тип указателя на функцию-член отличается от типа указателя на функцию . [ 23 ] Вместо этого необходимо использовать указатели на статические функции. Другой распространенный обходной путь — использование функтора .

Доступны оболочки C++ для GSL. [ 7 ] [ 8 ] [ 9 ] [ 10 ] Не все из них регулярно обслуживаются. Они предлагают доступ к матричным и векторным классам без необходимости использовать интерфейс GSL для malloc и free функций . Некоторые также предлагают поддержку создания рабочих пространств, которые ведут себя как классы интеллектуальных указателей . Наконец, существует (ограниченная по состоянию на апрель 2020 г.) поддержка, позволяющая пользователю создавать классы для представления параметризованной функции в виде функтора .

Хотя это и не строго оболочки, но существуют некоторые классы C++. [ 24 ] [ 25 ] которые позволяют пользователям C++ использовать научную библиотеку Gnu с функциями оболочки.

См. также

[ редактировать ]

Примечания

[ редактировать ]
  1. ^ GPL-3.0 или более поздняя версия со 2 июля 2007 г.
  2. ^ GPL-2.0 или более поздняя версия с 8 июля 1996 г. по 02 июля 2007 г.
  1. ^ «Выпущен GSL 2.8» .
  2. ^ «GNU — Каталог свободного программного обеспечения» .
  3. ^ Jump up to: а б с Домашняя страница GSL .
  4. ^ Проектный документ GSL .
  5. ^ Использование библиотеки. Пример программы . Документация ГСЛ.
  6. ^ Привязки AMPL для Научной библиотеки GNU. Архивировано 28 октября 2021 г. в Wayback Machine .
  7. ^ Jump up to: а б ccgsl: интерфейс C++ для научной библиотеки GNU ;
  8. ^ Jump up to: а б GSL — оболочки C++ для GSL. Архивировано 29 января 2015 г. на Wayback Machine ;
  9. ^ Jump up to: а б GSLwrap: класс-оболочка C++ для научной библиотеки GNU ;
  10. ^ Jump up to: а б gslcpp: современная библиотека C++, состоящая только из заголовков, включающая научную библиотеку GNU .
  11. ^ FGSL — интерфейс на Фортране к Научной библиотеке GNU .
  12. ^ Пакет hmatrix-special, интерфейс для специальных функций GSL .
  13. ^ Пакет hmatrix-gsl, чисто функциональный интерфейс для выбранных числовых вычислений, внутренне реализованный с использованием GSL .
  14. ^ Пресеты JavaCPP для GSL .
  15. ^ Интерфейс Джулии к GSL .
  16. ^ GSLL, Научная библиотека GNU для Lisp .
  17. ^ gsl-ocaml: привязки OCaml к GSL .
  18. ^ Интерфейс Python для научной библиотеки GNU .
  19. ^ RcppGSL: интеграция Rcpp для векторов и матриц GNU GSL .
  20. ^ gsl: оболочка для научной библиотеки Gnu .
  21. ^ rb-gsl: Ruby/GSL — это Ruby-интерфейс к Научной библиотеке GNU для численных вычислений с помощью Ruby .
  22. ^ ржавчина-gsl: привязка Rust для библиотеки GSL (Научная библиотека GNU).
  23. ^ Указатели на функции-члены . Архивировано 13 октября 2004 г. в Wayback Machine .
  24. ^ o2scl Объектно-ориентированная библиотека научных вычислений ;
  25. ^ да .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 113ee66185a3c874b51fe9dd46265048__1715861400
URL1:https://arc.ask3.ru/arc/aa/11/48/113ee66185a3c874b51fe9dd46265048.html
Заголовок, (Title) документа по адресу, URL1:
GNU Scientific Library - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)