Назначение и состав библиотеки LAPACK

LAPACK – это библиотека на языке Fortran 77 содержащая набор подпрограмм для решения наиболее часто встречающихся задач линейной алгебры. Она разрабатывалась с учетом свойств большинства современных архитектур для достижения наивысшей производительности.

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

LAPACK является логическим продолжением библиотек LINPACK и EISPACK[http://www.netlib.org/eispack/, www.netlib.org/linpack]. Но он был полностью переработан для достижения большей производительности на современных компьютерах. Также LAPACK расширяет их функциональность, так как в нем используются новые и усовершенствованные алгоритмы. Подпрограммы LAPACK написаны так, чтобы наибольшее число вычислительных операций выполнялось пакетом BLAS (Basic Linear Algebra Set). Этот пакет предназначен для выполнения элементарных операций, таких как сложение и умножение векторов и матриц, вычисление скалярного произведения и т.п. Он имеет большое количество реализаций, предназначенных для различных платформ. Использование его в LAPACK положительно сказывается на переносимости последнего, без потери производительности, также это позволяет учитывать архитектурные особенности платформ. С пакетом LAPACK поставляется стандартная версия пакета BLAS. В BARSIC использeтся пакет LAPACK версии 3.0.

Подпрограммы пакета LAPACK разделены на три группы:

LAPACK содержит подпрограммы одинакового назначения как для вещественных, так и для комплексных данных. Но есть некоторые исключения. Например, аналогом решения симметричных систем линейных уравнений для комплексных данных являются подпрограммы предназначенные как для симметричных матриц, так и для эрмитовских. В то же время не существует комплексного аналога подпрограммы для нахождения собственных значений вещественной симметричной трехдиагональной матрицы, так как комплексная эрмитовская матрица всегда может быть приведена к симметричной трехдиагональной.

Все подпрограммы LAPACK имеют версии единичной и двойной точности. Их названия выглядят так: XYYZZZ. Последняя буква может быть опущена для некоторых подпрограмм уровня driver. Первая буква (“X”) определяет тип данных, с которыми оперирует подпрограмма:

Буквы YY обозначают тип матрицы с которой работает подпрограмма:

Буквы ZZZ обозначают тип проводимых вычислений, например TRF обозначает LU разложение, EV – поиск собственных значений. Более подробный перечень обозначений можно найти в справке LAPACK users guide[http://www.netlib.org/lapack/].


Обратно к домашней странице BARSIC

Rambler's Top100