20 #ifndef TENSOR_GEMV_CC
21 #define TENSOR_GEMV_CC
23 #ifdef TENSOR_USE_ESSL
26 #include <tensor/tensor_blas.h>
30 inline void gemv(
char trans, integer m, integer n,
const double alpha,
31 const double a[], integer lda,
const double x[], integer incx,
32 const double &beta,
double y[], integer incy)
34 #ifdef TENSOR_USE_ESSL
35 dgemv(&trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
37 #ifdef TENSOR_USE_ACML
38 dgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
40 #if !defined(TENSOR_USE_ESSL) && !defined(TENSOR_USE_ACML)
41 cblas_dgemv(CblasColMajor, char_to_op(trans), m, n,
42 alpha, a, lda, x, incx, beta, y, incy);
46 inline void gemv(
char trans, integer m, integer n,
const tensor::cdouble &alpha,
47 const tensor::cdouble *a, integer lda,
const tensor::cdouble *x,
48 integer incx,
const tensor::cdouble &beta, tensor::cdouble *y,
51 #ifdef TENSOR_USE_ESSL
52 zgemv(&trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
54 #ifdef TENSOR_USE_ACML
55 zgemv(trans, m, n, alpha, a, lda, x, incx, beta, y, incy);
57 #if !defined(TENSOR_USE_ESSL) && !defined(TENSOR_USE_ACML)
58 cblas_zgemv(CblasColMajor, char_to_op(trans), m, n,
59 &alpha, a, lda, x, incx, &beta, y, incy);
65 #endif // TENSOR_GEMV_CC