Level 2 BLAS (Matrix-Vector Operations)

Level 2 BLAS perform matrix-vector operations with O(n²) complexity.

All operations are templated on scalar type (float, double, std::complex<float>, std::complex<double>) and support both CPU and GPU execution via the optional Queue parameter.

Operations

gemv - General matrix-vector multiply: \(y = \alpha op(A)x + \beta y\)

ger - General rank-1 update (conjugated): \(A = \alpha x y^H + A\)

geru - General rank-1 update (unconjugated): \(A = \alpha x y^T + A\)

hemv - Hermitian matrix-vector multiply: \(y = \alpha A x + \beta y\)

her - Hermitian rank-1 update: \(A = \alpha x x^H + A\)

her2 - Hermitian rank-2 update: \(A = \alpha x y^H + \overline{\alpha} y x^H + A\)

symv - Symmetric matrix-vector multiply: \(y = \alpha A x + \beta y\)

syr - Symmetric rank-1 update: \(A = \alpha x x^T + A\)

syr2 - Symmetric rank-2 update: \(A = \alpha x y^T + \alpha y x^T + A\)

trmv - Triangular matrix-vector multiply: \(x = op(A)x\)

trsv - Triangular solve: \(op(A)x = b\)

All functions are defined in the blas namespace and documented in individual header files under include/blas/.