Упакованная матрица хранения - Packed storage matrix

А упакованная матрица хранения, также известный как упакованная матрица, это термин, используемый в программирование для представления матрица. Это более компактный способ, чем прямоугольный массив размером m на n, за счет использования специальной структуры матрицы.

Типичные примеры матриц, которые могут использовать преимущества упакованного хранилища, включают:

Примеры кода (Фортран)

Обе следующие схемы хранения широко используются в BLAS и LAPACK.

Пример упакованного хранилища для эрмитовой матрицы:

комплекс :: A (n, n)! комплекс эрмитовых матриц :: AP (n * (n + 1) / 2)! упакованное хранилище для А! нижний треугольник A сохраняется столбец за столбцом в AP.! распаковка матрицы AP в Ado j = 1, nk = j * (j-1) / 2 A (1: j, j) = AP (1 + k: j + k) A (j, 1: j-1) = конг (AP (1 + k: j-1 + k)) конец делать

Пример упакованного хранилища для ленточной матрицы:

real :: A (m, n)! полосчатая матрица с kl поддиагоналей и ku superdiagonalsreal :: AP (-kl: ku, n)! упакованное хранилище для А! полоса A сохраняется столбец за столбцом в AP. Некоторые элементы AP не используются.! распаковка матрицы AP в Ado j = 1, n forall (i = max (1, j-kl): min (m, j + ku)) A (i, j) = AP (ij, j) end doprint *, AP (0, :)! диагональ