BLAS Level 2
Раздел BLAS Level 2 описывает функции для операций между матрицами и векторами, которые выполняют вычисления второго уровня линейной алгебры — умножения, линейные комбинации и ранговые обновления матриц. Эти функции реализуют стандартные процедуры библиотеки BLAS (Level 2) и обеспечивают эффективное выполнение вычислений для действительных, комплексных и эрмитовых матриц.
Функции BLAS Level 2 предназначены для:
- вычисления произведений матрица–вектор;
- обновления матриц (ранговые модификации);
- работы с особыми типами матриц — симметричными, Эрмитовыми и треугольными;
- выполнения вычислений с поддержкой разных типов данных: float, double, complexf, complex.
Все функции возвращают true при успешном выполнении и false — в случае ошибки.
Функция |
Действие |
|---|---|
Вычисляет произведение матрицы общего вида размера m на n на вектор: y = alpha * op(A) * x + beta * y. BLAS-функция GEMV. |
|
Вычисляет произведение симметричной матрицы размера n на n на вектор: y = alpha*A*x + beta*y. BLAS-функция SYMV. |
|
Вычисляет произведение эрмитовой матрицы размера n на n на вектор: y = alpha*A*x + beta*y. BLAS-функция HEMV. |
|
Вычисляет произведение треугольной матрицы размера n на n на вектор: y = op(A) * x. BLAS-функция TRMV. |
|
Выполняет обновление ранга 1 матрицы общего вида размера m на n: AU = alpha*x*y + A. BLAS-функции GER, GERU. |
|
Выполняет сопряженное обновление ранга 1 матрицы общего вида размера m на n: AU = alpha * x * conjg(y) + A. BLAS-функция GERC. |
|
Выполняет обновление ранга 1 симметричной матрицы размера n на n: AU = alpha*x*x + A. BLAS-функция SYR. |
|
Выполняет сопряженное обновление ранга 1 эрмитовой матрицы размера n на n: AU = alpha * x * conjg(x) + A. BLAS-функция HER2. |
|
Выполняет обновление ранга 2 симметричной матрицы размера n на n: AU = alpha*x*y + alpha*y*x + A. BLAS-функция SYR2. |
|
Выполняет сопряженное обновление ранга 2 эрмитовой матрицы размера n на n: AU = alpha * x * conjg(y) + conjg(alpha) * y * conjg(x) + A. BLAS-функция 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)