xref: /petsc/include/petscis.h (revision 49e3953d2ddc48db66efb706eff557e010a5e7a0)
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 #define IS_COOKIE PETSC_COOKIE+2
10 
11 typedef struct _IS* IS;
12 
13 extern int   ISCreateSequential(MPI_Comm,int,int *,IS *);
14 extern int   ISCreateMPI(int,int,int *,MPI_Comm,IS *);
15 extern int   ISCreateStrideSequential(MPI_Comm,int,int,int,IS *);
16 extern int   ISAddStrideSequential(IS*,int,int,int);
17 extern int   ISStrideGetInfo(IS,int *,int*);
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 #define ISGENERALSEQUENTIAL 0
30 #define ISSTRIDESEQUENTIAL  2
31 #define ISGENERALPARALLEL   1
32 
33 #endif
34