BLAS Level 3
Раздел "BLAS Level 3" в MQL5 содержит набор высокопроизводительных функций для выполнения матрично-матричных операций — основного класса задач линейной алгебры, оптимизированных с использованием стандартов BLAS (Basic Linear Algebra Subprograms) уровня 3.
Функции этого раздела реализуют различные типы умножения и обновления матриц, включая общие, симметричные, эрмитовы и треугольные случаи. Они поддерживают вычисления с типами float, double, complex, complexf и обеспечивают удобный объектно-ориентированный интерфейс для классов matrix, matrixf, matrixc, matrixcf.
Эти методы полностью соответствуют стандартным подпрограммам BLAS L3 (GEMM, SYMM, HEMM, SYRK, HERK, SYR2K, HER2K, TRMM), обеспечивая эффективное использование современных процессорных инструкций и многопоточности. Таким образом, раздел BLAS Level 3 предназначен для решения задач линейной алгебры, требующих высокоточной и быстрой работы с большими матрицами, и представляет собой основу для реализации численных алгоритмов и анализа данных в MQL5.
Function |
Action |
|---|---|
Computes a matrix-matrix product with general matrices. C = alpha * op(A) * op(B) + beta * C, where C is m-by-n matrix, op(A) is m-by-k matrix, op(B) is k-by-n matrix. BLAS function GEMM. |
|
Computes a matrix-matrix product where the input matrix A is symmetric. C = alpha*A*B + beta*C or C = alpha*B*A + beta*C, where A is a symmetric matrix of m-by-m size if side='L', or n-by-n size otherwise; B and C are m-by-n matrices. BLAS function SYMM. |
|
Computes a matrix-matrix product where the input matrix A is Hermitian. C = alpha*A*B + beta*C or C = alpha*B*A + beta*C, where A is a Hermitian matrix of m-by-m size if side='L', or n-by-n size otherwise; B and C are m-by-n matrices. BLAS function HEMM. |
|
Computes a matrix-matrix product where the input matrix A is triangular. C = alpha*op(A) or C = alpha*B*op(A), where A is a triangular matrix of m-by-m size if side='L', or n-by-n size otherwise; B and C are m-by-n matrices. BLAS function TRMM. |
|
Performs a symmetric rank-k update. CU = alpha * A * A**T + beta*C or CU = alpha * A**T * A + beta*C. BLAS function SYRK. |
|
Performs a Hermitian rank-k update. CU = alpha * A * A**H + beta*C or CU = alpha * A**H * A + beta*C. BLAS function HERK. |
|
Performs a symmetric rank-2k update. CU = alpha * A * B**T + alpha * B * A**T + beta*C or CU = alpha * A**T * B + alpha * B**T * A + beta*C. BLAS function SYR2K. |
|
Performs a Hermitian rank-2k update. CU = alpha * A * B**H + alpha * B * A**H + beta*C or CU = alpha * A**H * B + alpha * B**H * A + beta*C. BLAS function HER2K. |