12eac72dbSBarry Smith 22eac72dbSBarry Smith /* 32eac72dbSBarry Smith An index set is essentially a subset of the integers 42eac72dbSBarry Smith */ 52eac72dbSBarry Smith #if !defined(__IS_PACKAGE) 62eac72dbSBarry Smith #define __IS_PACKAGE 72eac72dbSBarry Smith #include "petsc.h" 82eac72dbSBarry Smith 92eac72dbSBarry Smith typedef struct _IS* IS; 10*aabeff55SBarry Smith typedef struct _ISScatterCtx* ISScatterCtx; 112eac72dbSBarry Smith 12*aabeff55SBarry Smith extern int ISCreateSequential(int,int *,IS *); 13*aabeff55SBarry Smith #if defined(USING_MPI) 14*aabeff55SBarry Smith extern int ISCreateParallel(int,int,int *,MPI_Comm,IS *); 15*aabeff55SBarry Smith #endif 16*aabeff55SBarry Smith extern int ISCreateStrideSequential(int,int,int,IS *); 17*aabeff55SBarry Smith extern int ISCreateRangeSequential(int,int,int,IS *); 182eac72dbSBarry Smith 19*aabeff55SBarry Smith extern int ISSetPermutation(IS); 20*aabeff55SBarry Smith extern int ISIsPermutation(IS); 21*aabeff55SBarry Smith extern int ISGetIndices(IS,int **); 22*aabeff55SBarry Smith extern int ISRestoreIndices(IS,int **); 23*aabeff55SBarry Smith extern int ISGetSize(IS,int *); 24*aabeff55SBarry Smith extern int ISGetLocalSize(IS,int *); 25*aabeff55SBarry Smith extern int ISDestroy(IS); 26*aabeff55SBarry Smith extern int ISInvertPermutation(IS,IS*); 27*aabeff55SBarry Smith extern int ISView(IS,Viewer); 28*aabeff55SBarry Smith 29*aabeff55SBarry Smith extern int ISSetUpScatterBegin(IS,IS,ISScatterCtx*); 30*aabeff55SBarry Smith extern int ISSetUpScatterEnd(IS,IS,ISScatterCtx*); 31*aabeff55SBarry Smith extern int ISFreeScatterCtx(ISScatterCtx); 322eac72dbSBarry Smith 332eac72dbSBarry Smith #endif 34