Contents

class

SushiBLAS::Level2

Records the Level 2 BLAS routines.

Declared in
include/SushiBLAS/engine/blas/level2.hpp

See also

include/SushiBLAS/engine/blas/README.md

Public member functions

TaskHandle gemv(const Tensor &A, const Tensor &x, Tensor &y, bool transA=false, double alpha=1.0, double beta=0.0)

Computes y = alpha * op(A) * x + beta * y.

Parameters

transA

Uses A^T as op(A) when true.

TaskHandle ger(const Tensor &x, const Tensor &y, Tensor &A, double alpha=1.0)

Computes the rank-1 update A = alpha * x * y^H + A.

TaskHandle symv(const Tensor &A, const Tensor &x, Tensor &y, bool upper=false, double alpha=1.0, double beta=0.0)

Computes y = alpha * A * x + beta * y for a symmetric A.

Parameters

upper

Reads the upper triangle of A when true, the lower when false.

TaskHandle trmv(const Tensor &A, Tensor &x, bool upper=false, bool transA=false, bool unit_diag=false)

Computes x = op(A) * x for a triangular A.

Parameters

upper

Treats A as upper triangular when true, lower when false.

unit_diag

Treats the diagonal of A as all ones when true.

TaskHandle trsv(const Tensor &A, Tensor &b, bool upper=false, bool transA=false, bool unit_diag=false)

Solves op(A) * x = b for a triangular A, overwriting b with x.

Parameters

upper

Treats A as upper triangular when true, lower when false.

unit_diag

Treats the diagonal of A as all ones when true.

TaskHandle syr(const Tensor &x, Tensor &A, bool upper=false, double alpha=1.0)

Computes the symmetric rank-1 update A = alpha * x * x^H + A.

Parameters

upper

Updates the upper triangle when true, the lower when false.

TaskHandle syr2(const Tensor &x, const Tensor &y, Tensor &A, bool upper=false, double alpha=1.0)

Computes the symmetric rank-2 update A = alpha * x * y^H + alpha * y * x^H + A.

Parameters

upper

Updates the upper triangle when true, the lower when false.

Protected member functions

explicit Level2(TaskRecorder &recorder) noexcept

Binds the level to the recorder its routines record through.

Level2(const Level2 &)=default
Level2 & operator=(const Level2 &)=delete
Level2(Level2 &&)=default
Level2 & operator=(Level2 &&)=delete
~Level2()=default