LTL  2.0.x
Classes | Functions
blas.h File Reference

Classes

struct  blas_gbmv_dispatch< T >
 
struct  blas_gbmv_dispatch< double >
 
struct  blas_gbmv_dispatch< float >
 

Functions

template<typename T >
void blas_symv (const T alpha, const MArray< T, 2 > &A, const MArray< T, 1 > &x, const T beta, MArray< T, 2 > &y)
 
template<typename T >
MArray< T, 1 > blas_symv (const MArray< T, 2 > &A, const MArray< T, 1 > &x)
 
template<typename T >
MArray< T, 1 > blas_gbmv (const MArray< T, 2 > &A, const MArray< T, 1 > &x, const int M, const int ku, const int kl, const bool transA)
 
template<typename T >
blas_dot_dispatch< T >::value_type blas_dot (const MArray< T, 1 > &x, const MArray< T, 1 > &y)
 
template<typename T >
void blas_axpy (const MArray< T, 1 > &x, const T alpha, MArray< T, 1 > &y)
 
template<typename T >
void blas_gemv (const T alpha, const MArray< T, 2 > &A, const MArray< T, 1 > &x, const T beta, MArray< T, 1 > &y, const bool transA=false)
 
template<typename T >
MArray< T, 1 > blas_gemv (const MArray< T, 2 > &A, const MArray< T, 1 > &x, const bool transA=false)
 
template<typename T >
void blas_gemm (const T alpha, const MArray< T, 2 > &A, const MArray< T, 2 > &B, const T beta, MArray< T, 2 > &C, const bool transA=false, const bool transB=false)
 

Function Documentation

template<typename T >
void blas_gemv ( const T  alpha,
const MArray< T, 2 > &  A,
const MArray< T, 1 > &  x,
const T  beta,
MArray< T, 1 > &  y,
const bool  transA = false 
)

The Xgemv() routine compute a matrix-vector product for of either a general matrix or its transpose: y = alpha*Ax + beta*y y = alpha*transp(A)*x + beta*y

The MArrays x and y may have strides unequal 1, hence they may be views, slices, or subarrays of higher-dimensional MArrays. The matrix A needs to have contiguous storage.

The vector y is overwritted with the result of the calculation. If transA==false, the length of y has to be M, otherwise N.

template<typename T >
MArray<T,1> blas_gemv ( const MArray< T, 2 > &  A,
const MArray< T, 1 > &  x,
const bool  transA = false 
)

The Xgemv() routine compute a matrix-vector product for double-precision data of either a general matrix or its transpose: y = Ax y = transp(A)*x

The MArrays x may have strides unequal 1, hence it may be a view, slice, or subarray of a higher-dimensional MArray The matrix A needs to have contiguous storage.

The result of the calculation is returned in a newly allocated MArray.

template<typename T >
void blas_symv ( const T  alpha,
const MArray< T, 2 > &  A,
const MArray< T, 1 > &  x,
const T  beta,
MArray< T, 2 > &  y 
)

The Xsymv() routine compute a matrix-vector product for of a symmetric or hermitian matrix: y = alpha*Ax + beta*y

The MArrays x and y may have strides unequal 1, hence they may be views, slices, or subarrays of higher-dimensional MArrays. The matrix A needs to have contiguous storage.

The vector y is overwritted with the result of the calculation.

template<typename T >
MArray<T,1> blas_symv ( const MArray< T, 2 > &  A,
const MArray< T, 1 > &  x 
)

The Xsymv() routine compute a matrix-vector product for double-precision data of either a general matrix or its transpose: y = Ax

The MArrays x may have strides unequal 1, hence it may be a view, slice, or subarray of a higher-dimensional MArray The matrix A needs to have contiguous storage.

The result of the calculation is returned in a newly allocated MArray.

template<typename T >
MArray<T,1> blas_gbmv ( const MArray< T, 2 > &  A,
const MArray< T, 1 > &  x,
const int  M,
const int  ku,
const int  kl,
const bool  transA 
)

The Xgbmv() routine compute a matrix-vector product for single or double-precision data of either a general banded matrix or its transpose: y = Ax

The MArrays x may have strides unequal 1, hence it may be a view, slice, or subarray of a higher-dimensional MArray The matrix A needs to have contiguous storage.

The result of the calculation is returned in a newly allocated MArray.

References blas_gbmv_dispatch< T >::call().