34 #ifndef __GPUMATRIX_H__ 
   35 #define __GPUMATRIX_H__ 
   45 #ifndef SWIG // SWIG should skip this part 
   48 #if VIENNACL_VERSION >= 10600 
   49     template <
class, 
class, 
class> 
class matrix_base;
 
   51     template <
class, 
class, 
class, 
class> 
class matrix_base;
 
   53     template <
class> 
class const_entry_proxy;
 
   54     template <
class> 
class entry_proxy;
 
   65     template <
class, 
int, 
int, 
int, 
int, 
int> 
class Matrix;
 
   71 template <
class> 
class SGMatrix;
 
   84 template <
class T> 
class CGPUMatrix
 
   86 #if VIENNACL_VERSION >= 10600 
   87     typedef viennacl::matrix_base<T, std::size_t, std::ptrdiff_t> VCLMatrixBase;
 
   89     typedef viennacl::matrix_base<T, viennacl::column_major, std::size_t, std::ptrdiff_t> VCLMatrixBase;
 
   91     typedef viennacl::backend::mem_handle VCLMemoryArray;
 
  100     template <
typename ST> 
using container_type = CGPUMatrix<ST>;
 
  120     CGPUMatrix(std::shared_ptr<VCLMemoryArray> mem, 
index_t nrows, 
index_t ncols,
 
  124     CGPUMatrix(
const SGMatrix<T>& cpu_mat);
 
  127     operator SGMatrix<T>() 
const;
 
  130     CGPUMatrix(
const EigenMatrixXt& cpu_mat);
 
  133     operator EigenMatrixXt() 
const;
 
  136     inline VCLMatrixBase data()
 
  142     inline uint64_t size()
 const 
  144         const uint64_t c=num_cols;
 
  151     VCLMatrixBase vcl_matrix();
 
  160     void set_const(T value);
 
  163     void display_matrix(
const char* name=
"matrix") 
const;
 
  171     viennacl::const_entry_proxy<T> operator()(
index_t i, 
index_t j) 
const;
 
  186     viennacl::const_entry_proxy<T> operator[](
index_t index) 
const;
 
  193     viennacl::entry_proxy<T> operator[](
index_t index);
 
  200     std::shared_ptr<VCLMemoryArray> matrix;
 
  218 #endif // HAVE_VIENNACL 
  219 #endif // __GPUMATRIX_H__ 
all of classes and functions are contained in the shogun namespace