104afb09dSKarl Rupp #if !defined(__PETSCVIENNACL_H) 204afb09dSKarl Rupp #define __PETSCVIENNACL_H 304afb09dSKarl Rupp 404afb09dSKarl Rupp 504afb09dSKarl Rupp #define VIENNACL_WITH_OPENCL 604afb09dSKarl Rupp 704afb09dSKarl Rupp #include <petscvec.h> 8*269c5266SKarl Rupp #include <viennacl/forwards.h> 9*269c5266SKarl Rupp #include <viennacl/vector_proxy.hpp> 1004afb09dSKarl Rupp #include <viennacl/vector.hpp> 1104afb09dSKarl Rupp 1204afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLGetArrayReadWrite(Vec v, viennacl::vector<PetscScalar> **a); 1304afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLRestoreArrayReadWrite(Vec v, viennacl::vector<PetscScalar> **a); 1404afb09dSKarl Rupp 1504afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLGetArrayRead(Vec v, const viennacl::vector<PetscScalar> **a); 1604afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLRestoreArrayRead(Vec v, const viennacl::vector<PetscScalar> **a); 1704afb09dSKarl Rupp 1804afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLGetArrayWrite(Vec v, viennacl::vector<PetscScalar> **a); 1904afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLRestoreArrayWrite(Vec v, viennacl::vector<PetscScalar> **a); 2004afb09dSKarl Rupp 2104afb09dSKarl Rupp 2204afb09dSKarl Rupp 2304afb09dSKarl Rupp #endif 24