API
Data Structures
BLASFEO.BlasfeoDmat — Type
Single precision panel major matrix which is a subtype of AbstractMatrix{Cdouble}. The matrix uses the BLASFEO allocation utilities to allocate memory, and therefore uses a finalizer.
BLASFEO.BlasfeoSmat — Type
Single precision panel major matrix which is a subtype of AbstractMatrix{Cfloat} The matrix uses the BLASFEO allocation utilities to allocate memory, and therefore uses a finalizer.
BLASFEO.BlasfeoDvec — Type
Double precision vector which is a subtype of AbstractVector{Cdouble}. The matrix uses the BLASFEO allocation utilities to allocate memory, and therefore uses a finalizer.
BLASFEO.BlasfeoSvec — Type
Single precision vector which is a subtype of AbstractVector{Cfloat}. The matrix uses the BLASFEO allocation utilities to allocate memory, and therefore uses a finalizer.
"Level 1" API
The level 1 API corresponds to the $O(n)$ operations available over BLASFEO objects. We list only the operaions which are currently specialized, other
BLASFEO.veccpsc! — Function
veccpsc!(α, x, y)Preforms a copy and scale operation: y .= α * x.
BLASFEO.vecmul! — Function
vecmul!(x, y, z)Performs indexwise multiplication of x and y and stores it in z. It produces equivalent results to z .= x .* y.
BLASFEO.vecmulacc! — Function
vecmulacc!(x, y, z)Performs indexwise multiplication of x and y and adds it elementwise to z. It produces equivalent results to z .+= x .* y.
BLASFEO.vecmuldot! — Function
vecmuldot!(x, y, z)Performs indexwise multiplication of x and y and stores it to z. It produces equivalent results to z .+= x .* y. Additionally this returns the dot product of x and y: x^T * y.
LinearAlgebra.axpby! — Function
axpy!(α, x, β, y, z)Along with the standard 2 argument axpby!(α, x, β, y), BLASFEO.jl uses the 3 argument style of the BLASFEO api.
This allows a separate output vector z rather than overwriting y. This results in z = α * x + β * y.
LinearAlgebra.axpy! — Function
axpy!(α, x, y, z)Along with the standard 2 argument axpy!(α, x, y), BLASFEO.jl uses the 3 argument style of the BLASFEO api.
This allows a separate output vector z rather than overwriting y. This results in z = α * x + y.
"Level 2" API
The "level 2" API currently only consists of the in place three argument LinearAlgebra.mul! operation for matrix-vector operations, and matrix-vector multiplication via Base.:*. These operate as expected on both BLASFEO matricies and Transpose matricies with BLASFEO parents.