35 #ifndef _BLAZE_MATH_BLAS_GEMV_H_ 36 #define _BLAZE_MATH_BLAS_GEMV_H_ 72 float alpha,
const float* A,
int lda,
const float* x,
int incX,
73 float beta,
float* y,
int incY );
76 double alpha,
const double* A,
int lda,
const double* x,
int incX,
77 double beta,
double* y,
int incY );
80 complex<float> alpha,
const complex<float>* A,
int lda,
81 const complex<float>* x,
int incX, complex<float> beta,
82 complex<float>* y,
int incY );
85 complex<double> alpha,
const complex<double>* A,
int lda,
86 const complex<double>* x,
int incX, complex<double> beta,
87 complex<double>* y,
int incY );
89 template<
typename VT1,
typename MT1,
bool SO,
typename VT2,
typename ST >
91 const DenseVector<VT2,false>& x, ST alpha, ST beta );
93 template<
typename VT1,
typename VT2,
typename MT1,
bool SO,
typename ST >
95 const DenseMatrix<MT1,SO>& A, ST alpha, ST beta );
126 float alpha,
const float* A,
int lda,
const float* x,
int incX,
127 float beta,
float* y,
int incY )
129 cblas_sgemv( order, transA, m, n, alpha, A, lda, x, incX, beta, y, incY );
159 double alpha,
const double* A,
int lda,
const double* x,
int incX,
160 double beta,
double* y,
int incY )
162 cblas_dgemv( order, transA, m, n, alpha, A, lda, x, incX, beta, y, incY );
192 complex<float> alpha,
const complex<float>* A,
int lda,
193 const complex<float>* x,
int incX, complex<float> beta,
194 complex<float>* y,
int incY )
198 cblas_cgemv( order, transA, m, n, reinterpret_cast<const float*>( &alpha ),
199 reinterpret_cast<const float*>( A ), lda, reinterpret_cast<const float*>( x ),
200 incX, reinterpret_cast<const float*>( &beta ), reinterpret_cast<float*>( y ), incY );
230 complex<double> alpha,
const complex<double>* A,
int lda,
231 const complex<double>* x,
int incX, complex<double> beta,
232 complex<double>* y,
int incY )
236 cblas_zgemv( order, transA, m, n, reinterpret_cast<const double*>( &alpha ),
237 reinterpret_cast<const double*>( A ), lda, reinterpret_cast<const double*>( x ),
238 incX, reinterpret_cast<const double*>( &beta ), reinterpret_cast<double*>( y ), incY );
262 template<
typename VT1
268 const DenseVector<VT2,false>& x, ST alpha, ST beta )
282 const int m ( numeric_cast<int>( (~A).
rows() ) );
283 const int n ( numeric_cast<int>( (~A).
columns() ) );
284 const int lda( numeric_cast<int>( (~A).
spacing() ) );
286 gemv( ( SO )?( CblasColMajor ):( CblasRowMajor ), CblasNoTrans, m, n, alpha,
287 (~A).
data(), lda, (~x).
data(), 1, beta, (~y).
data(), 1 );
311 template<
typename VT1
317 const DenseMatrix<MT1,SO>& A, ST alpha, ST beta )
331 const int m ( numeric_cast<int>( (~A).
rows() ) );
332 const int n ( numeric_cast<int>( (~A).
columns() ) );
333 const int lda( numeric_cast<int>( (~A).
spacing() ) );
335 gemv( ( SO )?( CblasColMajor ):( CblasRowMajor ), CblasTrans, m, n, alpha,
336 (~A).
data(), lda, (~x).
data(), 1, beta, (~y).
data(), 1 );
Constraint on the data type.
Header file for auxiliary alias declarations.
#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:61
#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:61
MT::ElementType * data(DenseMatrix< MT, SO > &dm) noexcept
Low-level data access to the dense matrix elements.
Definition: DenseMatrix.h:169
#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:81
Header file for the DenseVector base class.
Cast operators for numeric types.
constexpr size_t columns(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of columns of the matrix.
Definition: Matrix.h:514
size_t spacing(const DenseMatrix< MT, SO > &dm) noexcept
Returns the spacing between the beginning of two rows/columns.
Definition: DenseMatrix.h:252
Constraint on the data type.
Namespace of the Blaze C++ math library.
Definition: Blaze.h:58
#define BLAZE_ALWAYS_INLINE
Platform dependent setup of an enforced inline keyword.
Definition: Inline.h:85
Header file for the DenseMatrix base class.
Constraint on the data type.
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:61
constexpr size_t rows(const Matrix< MT, SO > &matrix) noexcept
Returns the current number of rows of the matrix.
Definition: Matrix.h:498
Header file for the complex data type.
#define BLAZE_STATIC_ASSERT(expr)
Compile time assertion macro.In case of an invalid compile time expression, a compilation error is cr...
Definition: StaticAssert.h:112
System settings for the inline keywords.