#ifndef _PETSC_COMPAT_VEC_H #define _PETSC_COMPAT_VEC_H #undef __FUNCT__ #define __FUNCT__ "ISSum_232" static PETSC_UNUSED PetscErrorCode ISSum_232(IS is1,IS is2,IS *is3) { PetscTruth f; PetscErrorCode ierr; PetscFunctionBegin; PetscValidHeaderSpecific(is1,IS_COOKIE,1); PetscValidHeaderSpecific(is2,IS_COOKIE,2); PetscValidPointer(is3, 3); ierr = ISSorted(is1,&f); CHKERRQ(ierr); if (!f) SETERRQ(PETSC_ERR_ARG_INCOMP,"Arg 1 is not sorted"); ierr = ISSorted(is2,&f); CHKERRQ(ierr); if (!f) SETERRQ(PETSC_ERR_ARG_INCOMP,"Arg 2 is not sorted"); ierr = ISDuplicate(is1,is3); CHKERRQ(ierr); ierr = ISSum(is3,is2); CHKERRQ(ierr); PetscFunctionReturn(0); } #undef __FUNCT__ #define __FUNCT__ "VecSetOption_232" static PETSC_UNUSED PetscErrorCode VecSetOption_232(Vec x,VecOption op,PetscTruth flag) { if (op==VEC_IGNORE_OFF_PROC_ENTRIES && flag==PETSC_FALSE) op = VEC_TREAT_OFF_PROC_ENTRIES; else return 0; return VecSetOption(x,op); } #define ISSum(is1,is2,is3) ISSum_232((is1),(is2),(is3)) #define VEC_IGNORE_NEGATIVE_INDICES ((VecOption)1) #define VecSetOption(x,o,f) VecSetOption_232((x),(o),(f)) #define VecStrideScale(v,start,scale) VecStrideScale((v),(start),(&scale)) #define VecScatterBegin(ctx,x,y,im,sm) VecScatterBegin((x),(y),(im),(sm),(ctx)) #define VecScatterEnd(ctx,x,y,im,sm) VecScatterEnd((x),(y),(im),(sm),(ctx)) #endif /* _PETSC_COMPAT_VEC_H */