Files
mql5-skills/skills/mql5/references/docs/06-matrix/0563-matrix-openblas-blas-level3.md
T
2026-06-23 21:47:51 +08:00

2.7 KiB

BLAS Level 3

The "BLAS Level 3" section in MQL5 provides a set of high-performance functions for performing matrix-matrix operations — a fundamental class of linear algebra tasks optimized using the BLAS (Basic Linear Algebra Subprograms) Level 3 standards.

The functions in this section implement various types of matrix multiplication and update operations, including general, symmetric, Hermitian, and triangular cases. They support computations with data types float, double, complex, and complexf, offering a convenient object-oriented interface for the classes matrix, matrixf, matrixc, and matrixcf.

These methods fully correspond to the standard BLAS L3 subroutines (GEMM, SYMM, HEMM, SYRK, HERK, SYR2K, HER2K, TRMM), ensuring efficient utilization of modern processor instructions and multithreading.Thus, the BLAS Level 3 section is designed for solving linear algebra problems that require high accuracy and performance when working with large matrices, serving as a foundation for implementing numerical algorithms and data analysis in MQL5.

Function Action
BlasL3GeMM 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 .
BlasL3SyMM Computes a matrix-matrix product where the input matrix A is symmetric. C = alphaAB + betaC  or C = alphaBA + betaC, 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 .
BlasL3HeMM Computes a matrix-matrix product where the input matrix A is Hermitian. C = alphaAB + betaC  or C = alphaBA + betaC, 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 .
BlasL3TrMM Computes a matrix-matrix product where the input matrix A is triangular. C = alphaop(A)  or C = alphaB*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 .
BlasL3SyRK Performs a symmetric rank-k update. CU = alpha * A * AT + beta*C  or CU = alpha * AT * A + beta*C. BLAS function SYRK .
BlasL3HeRK Performs a Hermitian rank-k update. CU = alpha * A * AH + beta*C  or CU = alpha * AH * A + beta*C. BLAS function HERK .
BlasL3SyR2K Performs a symmetric rank-2k update. CU = alpha * A * BT + alpha * B * AT + betaC  or CU = alpha * AT * B + alpha * BT * A + betaC. BLAS function SYR2K .
BlasL3HeR2K Performs a Hermitian rank-2k update. CU = alpha * A * BH + alpha * B * AH + betaC  or CU = alpha * AH * B + alpha * BH * A + betaC. BLAS function HER2K .