BLAS Level 2
Раздел BLAS Level 2 описывает функции для операций между матрицами и векторами, которые выполняют вычисления второго уровня линейной алгебры — умножения, линейные комбинации и ранговые обновления матриц. Эти функции реализуют стандартные процедуры библиотеки BLAS (Level 2) и обеспечивают эффективное выполнение вычислений для действительных, комплексных и эрмитовых матриц.
Функции BLAS Level 2 предназначены для:
- вычисления произведений матрица–вектор;
- обновления матриц (ранговые модификации);
- работы с особыми типами матриц — симметричными, Эрмитовыми и треугольными;
- выполнения вычислений с поддержкой разных типов данных: float, double, complexf, complex.
Все функции возвращают true при успешном выполнении и false — в случае ошибки.
Function |
Action |
|---|---|
Computes a matrix-vector product using a general m-by-n matrix. y = alpha * op(A) * x + beta * y. BLAS function GEMV. |
|
Computes a matrix-vector product for a symmetric n-by-n matrix. y = alpha*A*x + beta*y. BLAS function SYMV. |
|
Computes a matrix-vector product for a Hermitian n-by-n matrix. y = alpha*A*x + beta*y. BLAS function HEMV. |
|
Computes a matrix-vector product using a triangular n-by-n matrix. y = op(A) * x. BLAS function TRMV. |
|
Performs a rank-1 update of a general m-by-n matrix. AU = alpha*x*y + A. BLAS functions GER, GERU. |
|
Performs a rank-1 conjugated update of a general m-by-n matrix. AU = alpha * x * conjg(y) + A. BLAS function GERC. |
|
Performs a rank-1 update of a symmetric n-by-n matrix. AU = alpha*x*x + A. BLAS function SYR. |
|
Performs a rank-1 conjugated update of a Hermitian n-by-n matrix. AU = alpha * x * conjg(x) + A. BLAS function HER2. |
|
Performs a rank-2 update of a symmetric n-by-n matrix. AU = alpha*x*y + alpha*y*x + A. BLAS function SYR2. |
|
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)