Contents

class

SushiBLAS::Level1

Records the Level 1 BLAS routines.

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

See also

include/SushiBLAS/engine/blas/README.md

Public member functions

TaskHandle axpy(double alpha, const Tensor &x, Tensor &y)

Computes y = alpha * x + y.

Parameters

alpha

Taken as double and narrowed to the element type at the kernel boundary.

See also

include/SushiBLAS/engine/blas/README.md

TaskHandle dot(const Tensor &x, const Tensor &y, Tensor &result)

Computes the unconjugated dot product x^T * y into result.

Parameters

result

Scalar output tensor.

TaskHandle scal(double alpha, Tensor &x)

Scales every element of x by alpha.

Parameters

alpha

Taken as double and narrowed at the kernel boundary; see axpy.

TaskHandle copy(const Tensor &x, Tensor &y)

Copies every element of x into y.

TaskHandle swap(Tensor &x, Tensor &y)

Exchanges the elements of x and y.

TaskHandle nrm2(const Tensor &x, Tensor &result)

Computes the Euclidean norm sqrt(sum(|x_i|^2)) into result.

Parameters

result

Scalar output tensor.

See also

include/SushiBLAS/engine/blas/README.md

TaskHandle asum(const Tensor &x, Tensor &result)

Computes sum(|Re(x_i)| + |Im(x_i)|) into result.

Parameters

result

Scalar output tensor.

TaskHandle iamax(const Tensor &x, Tensor &result)

Finds the smallest index i at which |Re(x_i)| + |Im(x_i)| is largest.

See also

include/SushiBLAS/engine/blas/README.md

TaskHandle rot(Tensor &x, Tensor &y, double c, double s)

Applies the plane rotation x_i = c * x_i + s * y_i, y_i = -s * x_i + c * y_i.

Parameters

c

Taken as double, like s, and narrowed at the kernel boundary; see axpy.

Protected member functions

explicit Level1(TaskRecorder &recorder) noexcept

Binds the level to the recorder its routines record through.

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