Правила наименований подпрограмм

Каждая подпрограмма комплекса имеет имя, начинающееся с буквы P. Таким образом допущено нарушение стандарта языка Фортран - 77, т.к. имена подпрограмм комплекса могут быть длиной более шести символов; кроме того, в именах служебных подпрограмм (TOOLS routines) допускается использование символа подчеркивания "_" (см. также [11, 12, 14]).

Все целевые и базовые подпрограммы имеют имена в виде последовательности шести или семи символов:

      PXYYZZ    или    PXYYZZZ , 

где второй символ X указывает на тип обрабатываемых данных:

      S    REAL
      D    DOUBLE PRECISION
      C    COMPLEX
      Z    DOUBLE COMPLEX 

Когда мы хотим сослаться на подпрограммы комплекса вообще, независимо от типа обрабатываемых данных, мы заменяем вторую букву в имени маленькой буквой "x". Таким образом, PxGESV означает, что мы имеем в виду все или любую из подпрограмм PSGESV, PCGESV, PDGESV и PZGESV.

Следующие две буквы YY указывают на то, какого вида матрица обрабатывается подпрограммой (или вид самой главной из участвующих матриц). Большинство из этих двухсимвольных сочетаний относятся одновременно как к вещественным, так и к комплексным матрицам, некоторые же относятся конкретно к одному из этих типов матриц. Приняты следующие мнемонические правила для указания вида обрабатываемых матриц:

DB (general band) - ленточная общего вида, для которой не требуется выбор ведущего элемента
DT (general tridiagonal) - трехдиагональная общего вида, для которой не требуется выбор ведущего элемента
GB (general band) - ленточная общего вида
GE (general) - общего вида (т.е. не симметричная, иногда прямоугольная)
GG (general matrices,
generalized problem)
- матрица общего вида, обобщенная проблема собственных значений (т.е. пара матриц общего вида)
HE (complex Hermitian) - комплексная эрмитова
OR (real orthogonal) - вещественная ортогональная
PB (symmetric or Hermitian positive definite band) - симметричная или эрмитова ленточная положительно определенная
PO (symmetric or Hermitian positive definite) - симметричная или эрмитова положительно определенная
PT (symmetric or Hermitian positive definite tridiagonal) - симметричная или эрмитова трехдиагональная положительно определенная
ST (real symmetric tridiagonal) - вещественная симметричная трехдиагональная
SY (symmetric) - симметричная
TR (triangular or in some cases quasi-triangular) - трехдиагональная или в некоторых случаях почти трехдиагональная
TZ (trapezoidal) - трапециевидная
UN (complex unitary) - комплексная унитарная

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

Последние два ZZ или три ZZZ символа в имени подпрограммы указывают ее назначение. Например, окончание TRF означает подпрограммы, которые выполняют факторизацию матриц.

Имена вспомогательных подпрограмм подчиняются тем же правилам, за исключением того, что третьим и четвертым символом YY обычно являются символы LA (например, PSLASCL или PCLARFG). Имеются два рода исключений. Вспомогательные подпрограммы, которые реализуют неблочные версии алгоритмов с разбиением матриц на блоки, имеют имена, подобные подпрограммам, реализующим алгоритмы с разбиением матриц на блоки, с заменой седьмого символа на "2". (Например, PSGETF2 является неблочной версией подпрограммы PSGETRF). Некоторые подпрограммы, которые могут рассматриваться как расширения подпрограмм пакета BLAS, именуются по правилам, аналогичным правилам для BLAS'а (например, PCMAX1, PSCSUM1).