Международная математическая библиотека подпрограмм


Международная математическая библиотека подпрограмм (англ. International Mathematical and Statistical Library, IMSL[1]) — коммерческая коллекция программных библиотек численного и статистического анализа, реализованная на языках программирования Си/C++, Java и Фортран. Доступна обёртка Python к функциям на Си.

Первая библиотека IMSL на языке Фортран была выпущена в 1970 году компанией International Mathematical and Statistical Libraries Inc., в 1991 году вышла версия для языка Си, изначально названная С/Base. В 1992 году компания IMSL Inc. слилась с Precision Visuals, образовав компанию Visual Numerics[2], которой стала принадлежать торговая марка IMSL[3]. С появлением стандарта Фортран 90 создана новая версия библиотеки — IMSL F90 Library[4] с сохранением полной обратной совместимости со всеми старыми версиями библиотеки[5]. Версия для Java вышла в 2002 году и для языка C# — в 2004 году[2]. В августе 2008 года выпущены обёртки для Python — PyIMSL. С 2009 по 2019 год библиотека развивалась Rogue Wave Software. В феврале 2009 года была выпущена PyIMSL Studio. В августе 2009 года была выпущена PyIMSL Studio 1.5. В ноябре 2015 года были выпущены библиотеки IMSL C# 6.5.2. Ранее поддерживались операционные системы Unix и Mac OS. По состоянию на 2012 год библиотека не поддерживала Mac OS X[6]. По состоянию на 2024 год, в библиотеке более 1000 алгоритмов[7]. Версия на языках С/С++ называется CNL, на Фортране — FNL, на Java — JMSL, на Python — PyNL[8].

Библиотеки доступны на безвозмездной основе для 30-дневного ознакомления коммерческим пользователям и для студентов[9].

Аппаратная поддержка включает продукцию компании AMD, корпорации Intel, Fujitsu, Hitachi, HP, IBM, NEC, SGI и Sun Microsystems. Библиотека cuBLAS позволяет выполнять функции библиотеки IMSL на Фортране с использованием графических процессоров NVIDIA, что значительно ускрояет выполнение многих функций линейной алгебры[11].

Поддерживаемые компиляторы включают Absoft[12], GNU CC, Intel, Microsoft и PGI  (англ.), Compaq[13].