40   template <
typename NumericT>
 
   55     size_type A_size1 = 
static_cast<size_type
>((transA == 
ViennaCLTrans) ? k : m);
 
   56     size_type A_size2 = 
static_cast<size_type
>((transA == 
ViennaCLTrans) ? m : k);
 
   58     size_type B_size1 = 
static_cast<size_type
>((transB == 
ViennaCLTrans) ? n : k);
 
   59     size_type B_size2 = 
static_cast<size_type
>((transB == 
ViennaCLTrans) ? k : n);
 
   66                                          A_size1, size_type(offA_row), difference_type(incA_row), size_type(A_row_major ? m : lda),
 
   67                                          A_size2, size_type(offA_col), difference_type(incA_col), size_type(A_row_major ? lda : k), A_row_major);
 
   70                                          B_size1, size_type(offB_row), difference_type(incB_row), size_type(B_row_major ? k : ldb),
 
   71                                          B_size2, size_type(offB_col), difference_type(incB_col), size_type(B_row_major ? ldb : n), B_row_major);
 
   74                                          size_type(m), size_type(offC_row), difference_type(incC_row), size_type(C_row_major ? m : ldc),
 
   75                                          size_type(n), size_type(offC_col), difference_type(incC_col), size_type(C_row_major ? ldc : n), C_row_major);
 
   96   return detail::ViennaCLHostgemm_impl<float>(backend,
 
  102                                               A, offA_row, offA_col, incA_row, incA_col, lda,
 
  103                                               B, offB_row, offB_col, incB_row, incB_col, ldb,
 
  105                                               C, offC_row, offC_col, incC_row, incC_col, ldc);
 
  119   return detail::ViennaCLHostgemm_impl<double>(backend,
 
  125                                                A, offA_row, offA_col, incA_row, incA_col, lda,
 
  126                                                B, offB_row, offB_col, incB_row, incB_col, ldb,
 
  128                                                C, offC_row, offC_col, incC_row, incC_col, ldc);
 
Generic backend for CUDA, OpenCL, host-based stuff. 
void gemm_dispatch(ScalarType alpha, MatrixTypeA const &A, ViennaCLTranspose transA, MatrixTypeB const &B, ViennaCLTranspose transB, ScalarType beta, MatrixTypeC &C)
Generic interface for matrix-vector and matrix-matrix products. See viennacl/linalg/vector_operations...
Implementation of the dense matrix class. 
#define VIENNACL_EXPORTED_FUNCTION
VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLHostDgemm(ViennaCLBackend backend, ViennaCLOrder orderA, ViennaCLTranspose transA, ViennaCLOrder orderB, ViennaCLTranspose transB, ViennaCLOrder orderC, ViennaCLInt m, ViennaCLInt n, ViennaCLInt k, double alpha, double *A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda, double *B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb, double beta, double *C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
Implementations of dense direct solvers are found here. 
VIENNACL_EXPORTED_FUNCTION ViennaCLStatus ViennaCLHostSgemm(ViennaCLBackend backend, ViennaCLOrder orderA, ViennaCLTranspose transA, ViennaCLOrder orderB, ViennaCLTranspose transB, ViennaCLOrder orderC, ViennaCLInt m, ViennaCLInt n, ViennaCLInt k, float alpha, float *A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda, float *B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb, float beta, float *C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
The vector type with operator-overloads and proxy classes is defined here. Linear algebra operations ...
ViennaCLStatus ViennaCLHostgemm_impl(ViennaCLBackend, ViennaCLOrder orderA, ViennaCLTranspose transA, ViennaCLOrder orderB, ViennaCLTranspose transB, ViennaCLOrder orderC, ViennaCLInt m, ViennaCLInt n, ViennaCLInt k, NumericT alpha, NumericT *A, ViennaCLInt offA_row, ViennaCLInt offA_col, ViennaCLInt incA_row, ViennaCLInt incA_col, ViennaCLInt lda, NumericT *B, ViennaCLInt offB_row, ViennaCLInt offB_col, ViennaCLInt incB_row, ViennaCLInt incB_col, ViennaCLInt ldb, NumericT beta, NumericT *C, ViennaCLInt offC_row, ViennaCLInt offC_col, ViennaCLInt incC_row, ViennaCLInt incC_col, ViennaCLInt ldc)
Implementation of the ViennaCL scalar class.