# Basic Linear Algebra Subroutines

Linear algebra is at the core of many mathematical concepts. In addition to high level functions such as Dot, Transpose, and Outer, the Wolfram Language provides, both direct access to and extensions of much of the Basic Linear Algebra Subroutines (BLAS) library. For some applications, these can provide a performance boost.

### BLAS 1

ASUM compute the sum of absolute values of vector elements

AXPY add a vector to a scalar multiple of another vector

COPY copy a vector to another vector

DOT dot product of two vectors

DOTC conjugate dot product of two vectors

IAMAX position of the vector element with the maximum absolute value

NRM2 compute the Euclidean norm of a vector

ROT apply a Givens rotation to a pair of vectors

ROTG compute the parameters for a Givens rotation

SCAL multiply a vector by a scalar

SWAP swap two vectors

### BLAS 2

GEMV add a vector to the product of a matrix and another vector

GER rank-one update of a matrix

GERC rank-one update of a complex-valued matrix

SYMV add a vector to the product of a symmetric matrix and another vector

SYR symmetric rank-one update of a matrix

TRMV add a vector to the product of a triangular matrix and another vector

TRSV solve a triangular system of linear equations

TBSV solve a triangular system of linear equations using a banded representation

### BLAS 3

GEMM add a matrix to the product of two other matrices

HERK Hermitian rank-k update of a matrix

SYRK symmetric rank-k update of a matrix

TRMM computes the product of a triangular matrix and another matrix

TRSM solve triangular systems of linear equations