Введение

NAG Numerical Library – это программный продукт, разработанный и продаваемый компанией The Numerical Algorithms Group Ltd. Это программная библиотека рутин для численного анализа, содержащая более 1900 математических и статистических алгоритмов. Области, охватываемые библиотекой, включают линейную алгебру, оптимизацию, численное интегрирование, решение обыкновенных и частных дифференциальных уравнений, регрессионный анализ и анализ временных рядов. Пользователи NAG Library вызывают ее рутины из своих приложений для включения математической или статистической функциональности и решения численных задач, например, нахождения минимума или максимума функции, аппроксимации кривой или поверхности по данным или решения дифференциального уравнения. Доступ к NAG Library возможен из различных языков и сред, таких как C/C++, Fortran, Python, AD, MATLAB, Java и .NET. Основными поддерживаемыми системами в настоящее время являются Windows, Linux и macOS с архитектурой x86 64; поддержка 32-битных Windows постепенно прекращается. Некоторые решатели математической оптимизации NAG доступны через пакет моделирования оптимизации.

История

Первоначальная версия NAG Library была написана на Algol 60 и Fortran. Она содержала 98 вызываемых пользователем подпрограмм и была выпущена для машин ICL 1906A и 1906S 1 октября 1971 года. В течение следующих пяти лет появились еще три версии библиотеки; за это время версия Algol была портирована на Algol 68, с поддержкой следующих платформ: CDC 7600/CYBER (CDC ALGOL 68), IBM 360/370/AMDAHL (FLACC ALGOL 68), ICL 1900 (ALGOL 68R), ICL 1906A/S (ALGOL 68R), ICL 2900 (ALGOL 68RS) и Telefunken TR440 (ALGOL 68C). Первая частично векторизованная реализация NAG Fortran Library для Cray 1 была выпущена в 1983 году, а первая версия NAG Parallel Library (специально разработанная для параллельных компьютерных архитектур с распределенной памятью) – в начале 1990-х годов. Mark 1 библиотеки NAG C была выпущена в 1990 году. В 1992 году в библиотеку впервые были включены подпрограммы LAPACK; NAG являлась участником проекта LAPACK с 1987 года. Первый выпуск NAG Library для SMP & Multicore, использующий преимущества параллелизма общей памяти симметричных многопроцессорных (SMP) и многоядерных процессоров, состоялся в 1997 году для многопроцессорных машин на архитектурах Dec Alpha и SPARC. NAG Library for NET, представляющая собой сборку CLI DLL, содержащую методы и объекты, предоставляющие пользователям Common Language Infrastructure (CLI) доступ к алгоритмам NAG, была впервые выпущена в 2010 году.

Текущая версия

Марка 29 библиотеки NAG включает математические и статистические алгоритмы, сгруппированные по разделам.