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