namespace for BLAS functions More...
Functions | |
float | sdot_ (const int *n, const float *x, const int *incx, const float *y, const int *incy) |
double | ddot_ (const int *n, const double *x, const int *incx, const double *y, const int *incy) |
void | sgemv_ (const char *transA, const int *m, const int *n, const float *alpha, const float *A, const int *ldA, const float *x, const int *incx, const float *beta, float *y, const int *incy) |
void | dgemv_ (const char *transA, const int *m, const int *n, const double *alpha, const double *A, const int *ldA, const double *x, const int *incx, const double *beta, double *y, const int *incy) |
void | cgemv_ (const char *transA, const int *m, const int *n, const void *alpha, const void *A, const int *ldA, const void *x, const int *incx, const void *beta, void *y, const int *incy) |
void | zgemv_ (const char *transA, const int *m, const int *n, const void *alpha, const void *A, const int *ldA, const void *x, const int *incx, const void *beta, void *y, const int *incy) |
void | sgemm_ (const char *transA, const char *transB, const int *m, const int *n, const int *k, const float *alpha, const float *A, const int *ldA, const float *B, const int *ldB, const float *beta, float *C, const int *ldC) |
void | dgemm_ (const char *transA, const char *transB, const int *m, const int *n, const int *k, const double *alpha, const double *A, const int *ldA, const double *B, const int *ldB, const double *beta, double *C, const int *ldC) |
void | cgemm_ (const char *transA, const char *transB, const int *m, const int *n, const int *k, const void *alpha, const void *A, const int *ldA, const void *B, const int *ldB, const void *beta, void *C, const int *ldC) |
void | zgemm_ (const char *transA, const char *transB, const int *m, const int *n, const int *k, const void *alpha, const void *A, const int *ldA, const void *B, const int *ldB, const void *beta, void *C, const int *ldC) |
template<typename eT > | |
arma_inline eT | dot_ (const int *n, const eT *x, const eT *y) |
template<typename eT > | |
void | gemv_ (const char *transA, const int *m, const int *n, const eT *alpha, const eT *A, const int *ldA, const eT *x, const int *incx, const eT *beta, eT *y, const int *incy) |
template<typename eT > | |
void | gemm_ (const char *transA, const char *transB, const int *m, const int *n, const int *k, const eT *alpha, const eT *A, const int *ldA, const eT *B, const int *ldB, const eT *beta, eT *C, const int *ldC) |
namespace for BLAS functions
float blas::sdot_ | ( | const int * | n, | |
const float * | x, | |||
const int * | incx, | |||
const float * | y, | |||
const int * | incy | |||
) |
Referenced by dot_().
double blas::ddot_ | ( | const int * | n, | |
const double * | x, | |||
const int * | incx, | |||
const double * | y, | |||
const int * | incy | |||
) |
Referenced by dot_().
void blas::sgemv_ | ( | const char * | transA, | |
const int * | m, | |||
const int * | n, | |||
const float * | alpha, | |||
const float * | A, | |||
const int * | ldA, | |||
const float * | x, | |||
const int * | incx, | |||
const float * | beta, | |||
float * | y, | |||
const int * | incy | |||
) |
Referenced by gemv_().
void blas::dgemv_ | ( | const char * | transA, | |
const int * | m, | |||
const int * | n, | |||
const double * | alpha, | |||
const double * | A, | |||
const int * | ldA, | |||
const double * | x, | |||
const int * | incx, | |||
const double * | beta, | |||
double * | y, | |||
const int * | incy | |||
) |
Referenced by gemv_().
void blas::cgemv_ | ( | const char * | transA, | |
const int * | m, | |||
const int * | n, | |||
const void * | alpha, | |||
const void * | A, | |||
const int * | ldA, | |||
const void * | x, | |||
const int * | incx, | |||
const void * | beta, | |||
void * | y, | |||
const int * | incy | |||
) |
Referenced by gemv_().
void blas::zgemv_ | ( | const char * | transA, | |
const int * | m, | |||
const int * | n, | |||
const void * | alpha, | |||
const void * | A, | |||
const int * | ldA, | |||
const void * | x, | |||
const int * | incx, | |||
const void * | beta, | |||
void * | y, | |||
const int * | incy | |||
) |
Referenced by gemv_().
void blas::sgemm_ | ( | const char * | transA, | |
const char * | transB, | |||
const int * | m, | |||
const int * | n, | |||
const int * | k, | |||
const float * | alpha, | |||
const float * | A, | |||
const int * | ldA, | |||
const float * | B, | |||
const int * | ldB, | |||
const float * | beta, | |||
float * | C, | |||
const int * | ldC | |||
) |
Referenced by gemm_().
void blas::dgemm_ | ( | const char * | transA, | |
const char * | transB, | |||
const int * | m, | |||
const int * | n, | |||
const int * | k, | |||
const double * | alpha, | |||
const double * | A, | |||
const int * | ldA, | |||
const double * | B, | |||
const int * | ldB, | |||
const double * | beta, | |||
double * | C, | |||
const int * | ldC | |||
) |
Referenced by gemm_().
void blas::cgemm_ | ( | const char * | transA, | |
const char * | transB, | |||
const int * | m, | |||
const int * | n, | |||
const int * | k, | |||
const void * | alpha, | |||
const void * | A, | |||
const int * | ldA, | |||
const void * | B, | |||
const int * | ldB, | |||
const void * | beta, | |||
void * | C, | |||
const int * | ldC | |||
) |
Referenced by gemm_().
void blas::zgemm_ | ( | const char * | transA, | |
const char * | transB, | |||
const int * | m, | |||
const int * | n, | |||
const int * | k, | |||
const void * | alpha, | |||
const void * | A, | |||
const int * | ldA, | |||
const void * | B, | |||
const int * | ldB, | |||
const void * | beta, | |||
void * | C, | |||
const int * | ldC | |||
) |
Referenced by gemm_().
arma_inline eT blas::dot_ | ( | const int * | n, | |
const eT * | x, | |||
const eT * | y | |||
) | [inline] |
Definition at line 49 of file blas_proto.hpp.
References ddot_(), and sdot_().
Referenced by op_dot::direct_dot().
00050 { 00051 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00052 00053 const int inc = 1; 00054 00055 if(is_float<eT>::value == true) 00056 { 00057 typedef float T; 00058 return eT( sdot_(n, (const T*)x, &inc, (const T*)y, &inc) ); 00059 } 00060 else 00061 if(is_double<eT>::value == true) 00062 { 00063 typedef double T; 00064 return eT( ddot_(n, (const T*)x, &inc, (const T*)y, &inc) ); 00065 } 00066 else 00067 { 00068 return eT(0); // prevent compiler warnings 00069 } 00070 }
void blas::gemv_ | ( | const char * | transA, | |
const int * | m, | |||
const int * | n, | |||
const eT * | alpha, | |||
const eT * | A, | |||
const int * | ldA, | |||
const eT * | x, | |||
const int * | incx, | |||
const eT * | beta, | |||
eT * | y, | |||
const int * | incy | |||
) | [inline] |
Definition at line 77 of file blas_proto.hpp.
References cgemv_(), dgemv_(), sgemv_(), and zgemv_().
00078 { 00079 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00080 00081 if(is_float<eT>::value == true) 00082 { 00083 typedef float T; 00084 sgemv_(transA, m, n, (const T*)alpha, (const T*)A, ldA, (const T*)x, incx, (const T*)beta, (T*)y, incy); 00085 } 00086 else 00087 if(is_double<eT>::value == true) 00088 { 00089 typedef double T; 00090 dgemv_(transA, m, n, (const T*)alpha, (const T*)A, ldA, (const T*)x, incx, (const T*)beta, (T*)y, incy); 00091 } 00092 else 00093 if(is_supported_complex_float<eT>::value == true) 00094 { 00095 typedef std::complex<float> T; 00096 cgemv_(transA, m, n, (const T*)alpha, (const T*)A, ldA, (const T*)x, incx, (const T*)beta, (T*)y, incy); 00097 } 00098 else 00099 if(is_supported_complex_double<eT>::value == true) 00100 { 00101 typedef std::complex<double> T; 00102 zgemv_(transA, m, n, (const T*)alpha, (const T*)A, ldA, (const T*)x, incx, (const T*)beta, (T*)y, incy); 00103 } 00104 00105 }
void blas::gemm_ | ( | const char * | transA, | |
const char * | transB, | |||
const int * | m, | |||
const int * | n, | |||
const int * | k, | |||
const eT * | alpha, | |||
const eT * | A, | |||
const int * | ldA, | |||
const eT * | B, | |||
const int * | ldB, | |||
const eT * | beta, | |||
eT * | C, | |||
const int * | ldC | |||
) | [inline] |
Definition at line 112 of file blas_proto.hpp.
References cgemm_(), dgemm_(), sgemm_(), and zgemm_().
00113 { 00114 arma_type_check<is_supported_blas_type<eT>::value == false>::apply(); 00115 00116 if(is_float<eT>::value == true) 00117 { 00118 typedef float T; 00119 sgemm_(transA, transB, m, n, k, (const T*)alpha, (const T*)A, ldA, (const T*)B, ldB, (const T*)beta, (T*)C, ldC); 00120 } 00121 else 00122 if(is_double<eT>::value == true) 00123 { 00124 typedef double T; 00125 dgemm_(transA, transB, m, n, k, (const T*)alpha, (const T*)A, ldA, (const T*)B, ldB, (const T*)beta, (T*)C, ldC); 00126 } 00127 else 00128 if(is_supported_complex_float<eT>::value == true) 00129 { 00130 typedef std::complex<float> T; 00131 cgemm_(transA, transB, m, n, k, (const T*)alpha, (const T*)A, ldA, (const T*)B, ldB, (const T*)beta, (T*)C, ldC); 00132 } 00133 else 00134 if(is_supported_complex_double<eT>::value == true) 00135 { 00136 typedef std::complex<double> T; 00137 zgemm_(transA, transB, m, n, k, (const T*)alpha, (const T*)A, ldA, (const T*)B, ldB, (const T*)beta, (T*)C, ldC); 00138 } 00139 00140 }