1*04afb09dSKarl Rupp #if !defined(__PETSCVIENNACL_H) 2*04afb09dSKarl Rupp #define __PETSCVIENNACL_H 3*04afb09dSKarl Rupp 4*04afb09dSKarl Rupp 5*04afb09dSKarl Rupp #define VIENNACL_WITH_OPENCL 6*04afb09dSKarl Rupp 7*04afb09dSKarl Rupp #include <petscsys.h> 8*04afb09dSKarl Rupp #include <petscmath.h> 9*04afb09dSKarl Rupp #include <petscvec.h> 10*04afb09dSKarl Rupp #include <viennacl/vector.hpp> 11*04afb09dSKarl Rupp 12*04afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLGetArrayReadWrite(Vec v, viennacl::vector<PetscScalar> **a); 13*04afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLRestoreArrayReadWrite(Vec v, viennacl::vector<PetscScalar> **a); 14*04afb09dSKarl Rupp 15*04afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLGetArrayRead(Vec v, const viennacl::vector<PetscScalar> **a); 16*04afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLRestoreArrayRead(Vec v, const viennacl::vector<PetscScalar> **a); 17*04afb09dSKarl Rupp 18*04afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLGetArrayWrite(Vec v, viennacl::vector<PetscScalar> **a); 19*04afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLRestoreArrayWrite(Vec v, viennacl::vector<PetscScalar> **a); 20*04afb09dSKarl Rupp 21*04afb09dSKarl Rupp 22*04afb09dSKarl Rupp 23*04afb09dSKarl Rupp #endif 24