35#ifndef _BLAZE_MATH_BLAS_GEMV_H_
36#define _BLAZE_MATH_BLAS_GEMV_H_
69template<
typename VT1,
typename MT1,
bool SO,
typename VT2,
typename ST >
70void gemv( DenseVector<VT1,false>& y,
const DenseMatrix<MT1,SO>& A,
71 const DenseVector<VT2,false>& x, ST alpha, ST beta );
73template<
typename VT1,
typename VT2,
typename MT1,
bool SO,
typename ST >
74void gemv( DenseVector<VT1,true>& y,
const DenseVector<VT2,true>& x,
75 const DenseMatrix<MT1,SO>& A, ST alpha, ST beta );
104template<
typename VT1
109inline void gemv( DenseVector<VT1,false>& y,
const DenseMatrix<MT1,SO>& A,
110 const DenseVector<VT2,false>& x, ST alpha, ST beta )
124 const blas_int_t m ( numeric_cast<blas_int_t>( (*A).rows() ) );
125 const blas_int_t n ( numeric_cast<blas_int_t>( (*A).columns() ) );
126 const blas_int_t lda( numeric_cast<blas_int_t>( (*A).spacing() ) );
128 gemv( ( SO )?( CblasColMajor ):( CblasRowMajor ), CblasNoTrans, m, n, alpha,
129 (*A).data(), lda, (*x).data(), 1, beta, (*y).data(), 1 );
157template<
typename VT1
162inline void gemv( DenseVector<VT1,true>& y,
const DenseVector<VT2,true>& x,
163 const DenseMatrix<MT1,SO>& A, ST alpha, ST beta )
177 const blas_int_t m ( numeric_cast<blas_int_t>( (*A).rows() ) );
178 const blas_int_t n ( numeric_cast<blas_int_t>( (*A).columns() ) );
179 const blas_int_t lda( numeric_cast<blas_int_t>( (*A).spacing() ) );
181 gemv( ( SO )?( CblasColMajor ):( CblasRowMajor ), CblasTrans, m, n, alpha,
182 (*A).data(), lda, (*x).data(), 1, beta, (*y).data(), 1 );
Header file for auxiliary alias declarations.
Constraint on the data type.
Constraint on the data type.
Header file for the IsRowMajorMatrix type trait.
Deactivation of problematic macros.
Constraint on the data type.
Cast operators for numeric types.
Header file for the CBLAS gemv wrapper functions.
Constraint on the data type.
Header file for the DenseMatrix base class.
Header file for the DenseVector base class.
#define BLAZE_CONSTRAINT_MUST_BE_BLAS_COMPATIBLE_TYPE(T)
Constraint on the data type.
Definition: BLASCompatible.h:61
#define BLAZE_CONSTRAINT_MUST_NOT_BE_COMPUTATION_TYPE(T)
Constraint on the data type.
Definition: Computation.h:81
#define BLAZE_CONSTRAINT_MUST_HAVE_MUTABLE_DATA_ACCESS(T)
Constraint on the data type.
Definition: MutableDataAccess.h:61
#define BLAZE_CONSTRAINT_MUST_HAVE_CONST_DATA_ACCESS(T)
Constraint on the data type.
Definition: ConstDataAccess.h:61
int32_t blas_int_t
Signed integer type used in the BLAS/LAPACK wrapper functions.
Definition: Types.h:64