35 #ifndef _BLAZE_MATH_BLAS_GEMV_H_
36 #define _BLAZE_MATH_BLAS_GEMV_H_
43 #include <boost/cast.hpp>
71 float alpha,
const float* A,
int lda,
const float* x,
int incX,
72 float beta,
float* y,
int incY );
75 double alpha,
const double* A,
int lda,
const double* x,
int incX,
76 double beta,
double* y,
int incY );
79 complex<float> alpha,
const complex<float>* A,
int lda,
80 const complex<float>* x,
int incX, complex<float> beta,
81 complex<float>* y,
int incY );
84 complex<double> alpha,
const complex<double>* A,
int lda,
85 const complex<double>* x,
int incX, complex<double> beta,
86 complex<double>* y,
int incY );
88 template<
typename VT1,
typename MT1,
bool SO,
typename VT2,
typename ST >
90 const DenseVector<VT2,false>& x, ST alpha, ST beta );
92 template<
typename VT1,
typename VT2,
typename MT1,
bool SO,
typename ST >
94 const DenseMatrix<MT1,SO>& A, ST alpha, ST beta );
125 float alpha,
const float* A,
int lda,
const float* x,
int incX,
126 float beta,
float* y,
int incY )
128 cblas_sgemv( order, transA, m, n, alpha, A, lda, x, incX, beta, y, incY );
158 double alpha,
const double* A,
int lda,
const double* x,
int incX,
159 double beta,
double* y,
int incY )
161 cblas_dgemv( order, transA, m, n, alpha, A, lda, x, incX, beta, y, incY );
191 complex<float> alpha,
const complex<float>* A,
int lda,
192 const complex<float>* x,
int incX, complex<float> beta,
193 complex<float>* y,
int incY )
195 cblas_cgemv( order, transA, m, n, &alpha, A, lda, x, incX, &beta, y, incY );
225 complex<double> alpha,
const complex<double>* A,
int lda,
226 const complex<double>* x,
int incX, complex<double> beta,
227 complex<double>* y,
int incY )
229 cblas_zgemv( order, transA, m, n, &alpha, A, lda, x, incX, &beta, y, incY );
253 template<
typename VT1
259 const DenseVector<VT2,false>& x, ST alpha, ST beta )
261 using boost::numeric_cast;
275 const int m ( numeric_cast<int>( (~A).
rows() ) );
276 const int n ( numeric_cast<int>( (~A).
columns() ) );
277 const int lda( numeric_cast<int>( (~A).
spacing() ) );
279 gemv( ( SO )?( CblasColMajor ):( CblasRowMajor ), CblasNoTrans, m, n, alpha,
280 (~A).data(), lda, (~x).data(), 1, beta, (~y).data(), 1 );
304 template<
typename VT1
310 const DenseMatrix<MT1,SO>& A, ST alpha, ST beta )
312 using boost::numeric_cast;
326 const int m ( numeric_cast<int>( (~A).
rows() ) );
327 const int n ( numeric_cast<int>( (~A).
columns() ) );
328 const int lda( numeric_cast<int>( (~A).
spacing() ) );
330 gemv( ( SO )?( CblasColMajor ):( CblasRowMajor ), CblasTrans, m, n, alpha,
331 (~A).data(), lda, (~x).data(), 1, beta, (~y).data(), 1 );
Constraint on the data type.
#define BLAZE_CONSTRAINT_MUST_HAVE_MUTABLE_DATA_ACCESS(T)
Constraint on the data type.In case the given data type T does not provide low-level data access to m...
Definition: MutableDataAccess.h:79
#define BLAZE_CONSTRAINT_MUST_HAVE_CONST_DATA_ACCESS(T)
Constraint on the data type.In case the given data type T does not provide low-level data access to c...
Definition: ConstDataAccess.h:79
#define BLAZE_CONSTRAINT_MUST_NOT_BE_COMPUTATION_TYPE(T)
Constraint on the data type.In case the given data type T is a computational expression (i...
Definition: Computation.h:118
BLAZE_ALWAYS_INLINE size_t rows(const Matrix< MT, SO > &matrix)
Returns the current number of rows of the matrix.
Definition: Matrix.h:308
Header file for the DenseVector base class.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:57
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
Header file for the DenseMatrix base class.
Type ElementType
Type of the sparse matrix elements.
Definition: CompressedMatrix.h:2586
Constraint on the data type.
Constraint on the data type.
const bool spacing
Adding an additional spacing line between two log messages.This setting gives the opportunity to add ...
Definition: Logging.h:70
System settings for the BLAS mode.
Header file for run time assertion macros.
Constraint on the data type.
#define BLAZE_CONSTRAINT_MUST_BE_BLAS_COMPATIBLE_TYPE(T)
Constraint on the data type.In case the given data type T is not a BLAS compatible data type (i...
Definition: BlasCompatible.h:79
Header file for the IsRowMajorMatrix type trait.
BLAZE_ALWAYS_INLINE size_t columns(const Matrix< MT, SO > &matrix)
Returns the current number of columns of the matrix.
Definition: Matrix.h:324
Header file for the complex data type.
System settings for the inline keywords.