Actual source code: vecpthreadimpl.h

petsc-3.3-p5 2012-12-01
  2: #ifndef __VECPTHREADIMPL

  5: #include <petscsys.h>
  6: #include <petsc-private/vecimpl.h>

  8: /* Common data for all kernels */
  9: typedef struct {
 10:   Vec           X;
 11:   PetscInt      thread_id;
 12:   PetscScalar   *x,*y,*w;
 13:   PetscScalar   *y0,*y1,*y2,*y3;
 14:   PetscScalar   result,result0,result1,result2,result3;
 15:   PetscScalar   alpha;
 16:   PetscScalar   beta;
 17:   NormType      typeUse;
 18:   Vec*          yvec;
 19:   PetscInt      nvec;
 20:   PetscScalar*  results;
 21:   PetscInt      localind;
 22:   PetscReal     localmax;
 23:   PetscReal     localmin;
 24:   PetscRandom   rand;
 25:   const PetscScalar*  amult;   /* multipliers */
 26: } Vec_KernelData;

 28: extern Vec_KernelData *vec_kerneldatap;
 29: extern Vec_KernelData **vec_pdata;

 31: extern PetscErrorCode VecNorm_SeqPThread(Vec,NormType,PetscReal*);
 32: extern PetscErrorCode VecDot_SeqPThread(Vec,Vec,PetscScalar*);
 33: extern PetscErrorCode VecScale_SeqPThread(Vec,PetscScalar);
 34: extern PetscErrorCode VecMDot_SeqPThread(Vec,PetscInt,const Vec[],PetscScalar*);
 35: extern PetscErrorCode VecMax_SeqPThread(Vec,PetscInt*,PetscReal*);
 36: extern PetscErrorCode VecMin_SeqPThread(Vec,PetscInt*,PetscReal*);
 37: extern PetscErrorCode VecPointwiseMult_SeqPThread(Vec,Vec,Vec);
 38: extern PetscErrorCode VecPointwiseDivide_SeqPThread(Vec,Vec,Vec);
 39: extern PetscErrorCode VecSwap_SeqPThread(Vec,Vec);
 40: extern PetscErrorCode VecSetRandom_SeqPThread(Vec,PetscRandom);
 41: extern PetscErrorCode VecCopy_SeqPThread(Vec,Vec);
 42: extern PetscErrorCode VecAXPY_SeqPThread(Vec,PetscScalar,Vec);
 43: extern PetscErrorCode VecAYPX_SeqPThread(Vec,PetscScalar,Vec);
 44: extern PetscErrorCode VecWAXPY_SeqPThread(Vec,PetscScalar,Vec,Vec);
 45: extern PetscErrorCode VecMAXPY_SeqPThread(Vec,PetscInt,const PetscScalar[],Vec*);
 46: extern PetscErrorCode VecSet_SeqPThread(Vec,PetscScalar);

 48: EXTERN_C_BEGIN
 49: extern PetscErrorCode VecCreate_SeqPThread(Vec);
 50: EXTERN_C_END

 52: #endif