xref: /petsc/include/petscviennacl.h (revision 0cd40bc26a1ce01d47f2b1f8c15c569742939873)
104afb09dSKarl Rupp #if !defined(__PETSCVIENNACL_H)
204afb09dSKarl Rupp #define __PETSCVIENNACL_H
304afb09dSKarl Rupp 
404afb09dSKarl Rupp #include <petscvec.h>
5*0cd40bc2SKarl Rupp 
6*0cd40bc2SKarl Rupp #if defined(PETSC_HAVE_CUDA)
7*0cd40bc2SKarl Rupp #define VIENNACL_WITH_CUDA
8*0cd40bc2SKarl Rupp #endif
9*0cd40bc2SKarl Rupp 
10*0cd40bc2SKarl Rupp #if defined(PETSC_HAVE_OPENCL)
11*0cd40bc2SKarl Rupp #define VIENNACL_WITH_OPENCL
12*0cd40bc2SKarl Rupp #endif
13*0cd40bc2SKarl Rupp 
14*0cd40bc2SKarl Rupp #if defined(PETSC_HAVE_OPENMP)
15*0cd40bc2SKarl Rupp #define VIENNACL_WITH_OPENMP
16*0cd40bc2SKarl Rupp #endif
17*0cd40bc2SKarl Rupp 
18269c5266SKarl Rupp #include <viennacl/forwards.h>
19269c5266SKarl Rupp #include <viennacl/vector_proxy.hpp>
2004afb09dSKarl Rupp #include <viennacl/vector.hpp>
2104afb09dSKarl Rupp 
2204afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLGetArrayReadWrite(Vec v, viennacl::vector<PetscScalar> **a);
2304afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLRestoreArrayReadWrite(Vec v, viennacl::vector<PetscScalar> **a);
2404afb09dSKarl Rupp 
2504afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLGetArrayRead(Vec v, const viennacl::vector<PetscScalar> **a);
2604afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLRestoreArrayRead(Vec v, const viennacl::vector<PetscScalar> **a);
2704afb09dSKarl Rupp 
2804afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLGetArrayWrite(Vec v, viennacl::vector<PetscScalar> **a);
2904afb09dSKarl Rupp PETSC_EXTERN PetscErrorCode VecViennaCLRestoreArrayWrite(Vec v, viennacl::vector<PetscScalar> **a);
3004afb09dSKarl Rupp 
3104afb09dSKarl Rupp 
3204afb09dSKarl Rupp #endif
33