1 2 /* 3 An index set is essentially a subset of the integers 4 */ 5 #if !defined(__IS_PACKAGE) 6 #define __IS_PACKAGE 7 #include "petsc.h" 8 9 typedef struct _IS* IS; 10 typedef struct _ISScatterCtx* ISScatterCtx; 11 12 extern int ISCreateSequential(int,int *,IS *); 13 #if defined(USING_MPI) 14 extern int ISCreateParallel(int,int,int *,MPI_Comm,IS *); 15 #endif 16 extern int ISCreateStrideSequential(int,int,int,IS *); 17 extern int ISCreateRangeSequential(int,int,int,IS *); 18 19 extern int ISSetPermutation(IS); 20 extern int ISIsPermutation(IS); 21 extern int ISGetIndices(IS,int **); 22 extern int ISRestoreIndices(IS,int **); 23 extern int ISGetSize(IS,int *); 24 extern int ISGetLocalSize(IS,int *); 25 extern int ISDestroy(IS); 26 extern int ISInvertPermutation(IS,IS*); 27 extern int ISView(IS,Viewer); 28 29 extern int ISCreateScatterCtxBegin(IS,IS,ISScatterCtx*); 30 extern int ISCreateScatterCtxEnd(IS,IS,ISScatterCtx*); 31 extern int ISFreeScatterCtx(ISScatterCtx); 32 33 #endif 34