BLAS Level 2

Раздел BLAS Level 2 описывает функции для операций между матрицами и векторами, которые выполняют вычисления второго уровня линейной алгебры — умножения, линейные комбинации и ранговые обновления матриц. Эти функции реализуют стандартные процедуры библиотеки BLAS (Level 2) и обеспечивают эффективное выполнение вычислений для действительных, комплексных и эрмитовых матриц.

Функции BLAS Level 2 предназначены для:

  • вычисления произведений матрица–вектор;
  • обновления матриц (ранговые модификации);
  • работы с особыми типами матриц — симметричными, Эрмитовыми и треугольными;
  • выполнения вычислений с поддержкой разных типов данных: float, double, complexf, complex.

Все функции возвращают true при успешном выполнении и false — в случае ошибки.

Function

Action

BlasL2GeMV

Computes a matrix-vector product using a general m-by-n matrix. y = alpha * op(A) * x + beta * y. BLAS function GEMV.

BlasL2SyMV

Computes a matrix-vector product for a symmetric n-by-n matrix. y = alpha*A*x + beta*y. BLAS function SYMV.

BlasL2HeMV

Computes a matrix-vector product for a Hermitian n-by-n matrix. y = alpha*A*x + beta*y. BLAS function HEMV.

BlasL2TrMV

Computes a matrix-vector product using a triangular n-by-n matrix. y = op(A) * x. BLAS function TRMV.

BlasL2GeR

Performs a rank-1 update of a general m-by-n matrix. AU = alpha*x*y + A. BLAS functions GER, GERU.

BlasL2GeRC

Performs a rank-1 conjugated update of a general m-by-n matrix. AU = alpha * x * conjg(y) + A. BLAS function GERC.

BlasL2SyR

Performs a rank-1 update of a symmetric n-by-n matrix. AU = alpha*x*x + A. BLAS function SYR.

BlasL2HeR

Performs a rank-1 conjugated update of a Hermitian n-by-n matrix. AU = alpha * x * conjg(x) + A. BLAS function HER2.

BlasL2SyR2

Performs a rank-2 update of a symmetric n-by-n matrix. AU = alpha*x*y + alpha*y*x + A. BLAS function SYR2.

BlasL2HeR2

Performs a rank-2 conjugated update of a Hermitian n-by-n matrix. AU = alpha * x * conjg(y) + conjg(alpha) * y * conjg(x) + A. BLAS function HER2.

Основные группы функций

1. Общие матрицы

  • BlasL2GeMV — вычисляет произведение матрицы на вектор: y = α·op(A)·x + β·y  (BLAS GEMV)
  • BlasL2GeR — выполняет ранговое обновление (ранг 1): A ← A + α·x·yᵀ   (BLAS GER, GERU)
  • BlasL2GeRC — вариант для комплексных матриц с сопряжением:  A ← A + α·x·conjg(yᵀ)   (BLAS GERC)

2. Симметричные матрицы (реальные)

  • BlasL2SyMV — произведение симметричной матрицы на вектор:  y = α·A·x + β·y (BLAS SYMV)
  • BlasL2SyR — обновление матрицы ранга 1: A ← A + α·x·xᵀ  (BLAS SYR)
  • BlasL2SyR2 — обновление ранга 2: A ← A + α·(x·yᵀ + y·xᵀ)  (BLAS SYR2)

3. Эрмитовы матрицы (комплексные)

  • BlasL2HeMV — произведение Эрмитовой матрицы на вектор: y = α·A·x + β·y  (BLAS HEMV)
  • BlasL2HeR — обновление Эрмитовой матрицы ранга 1: A ← A + α·x·conjg(xᵀ)  (BLAS HER)
  • BlasL2HeR2 — обновление ранга 2: A ← A + α·x·conjg(yᵀ) + conjg(α)·y·conjg(xᵀ)   (BLAS HER2)

4. Треугольные матрицы

  • BlasL2TrMV — произведение треугольной матрицы на вектор: y = op(A)·x, где op(A) — A, или в зависимости от параметра   (BLAS TRMV)