1*d67ff14aSKarl Rupp #if !defined(__VIENNACLMATIMPL) 2*d67ff14aSKarl Rupp #define __VIENNACLMATIMPL 3*d67ff14aSKarl Rupp 4*d67ff14aSKarl Rupp #include <../src/vec/vec/impls/seq/seqviennacl/viennaclvecimpl.h> 5*d67ff14aSKarl Rupp 6*d67ff14aSKarl Rupp /* for everything else */ 7*d67ff14aSKarl Rupp #include "viennacl/compressed_matrix.hpp" 8*d67ff14aSKarl Rupp 9*d67ff14aSKarl Rupp 10*d67ff14aSKarl Rupp /* Old way */ 11*d67ff14aSKarl Rupp typedef viennacl::compressed_matrix<PetscScalar> ViennaCLAIJMatrix; 12*d67ff14aSKarl Rupp 13*d67ff14aSKarl Rupp 14*d67ff14aSKarl Rupp struct Mat_SeqAIJViennaCL { 15*d67ff14aSKarl Rupp ViennaCLAIJMatrix *mat; /* pointer to the matrix on the GPU */ 16*d67ff14aSKarl Rupp }; 17*d67ff14aSKarl Rupp 18*d67ff14aSKarl Rupp 19*d67ff14aSKarl Rupp PETSC_INTERN PetscErrorCode MatViennaCLCopyToGPU(Mat); 20*d67ff14aSKarl Rupp PETSC_INTERN PetscErrorCode MatViennaCLCopyFromGPU(Mat, ViennaCLAIJMatrix*); 21*d67ff14aSKarl Rupp #endif 22