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 99e25ed09SBarry Smith #define IS_COOKIE PETSC_COOKIE+2 10f0479e8cSBarry Smith 112eac72dbSBarry Smith typedef struct _IS* IS; 122eac72dbSBarry Smith 136b5873e3SBarry Smith extern int ISCreateSequential(MPI_Comm,int,int *,IS *); 1420563c6bSBarry Smith extern int ISCreateMPI(int,int,int *,MPI_Comm,IS *); 156b5873e3SBarry Smith extern int ISCreateStrideSequential(MPI_Comm,int,int,int,IS *); 1621e1619bSBarry Smith extern int ISAddStrideSequential(IS,int,int,int); 1720563c6bSBarry Smith extern int ISStrideGetInfo(IS,int *,int*); 182eac72dbSBarry Smith 19aabeff55SBarry Smith extern int ISSetPermutation(IS); 20aabeff55SBarry Smith extern int ISIsPermutation(IS); 21aabeff55SBarry Smith extern int ISGetIndices(IS,int **); 22aabeff55SBarry Smith extern int ISRestoreIndices(IS,int **); 23aabeff55SBarry Smith extern int ISGetSize(IS,int *); 24aabeff55SBarry Smith extern int ISGetLocalSize(IS,int *); 25aabeff55SBarry Smith extern int ISDestroy(IS); 26aabeff55SBarry Smith extern int ISInvertPermutation(IS,IS*); 27aabeff55SBarry Smith extern int ISView(IS,Viewer); 28aabeff55SBarry Smith 29*30913a5eSBarry Smith #define ISGENERALSEQUENTIAL 0 30*30913a5eSBarry Smith #define ISSTRIDESEQUENTIAL 2 31*30913a5eSBarry Smith #define ISGENERALPARALLEL 1 32*30913a5eSBarry Smith 332eac72dbSBarry Smith #endif 34