xref: /petsc/include/petscis.h (revision f26ada1b813e5274d9a7a57fff8541d305429fd7)
1*f26ada1bSBarry Smith /* $Id: is.h,v 1.17 1995/10/24 21:55:05 bsmith Exp bsmith $ */
22eac72dbSBarry Smith 
32eac72dbSBarry Smith /*
4*f26ada1bSBarry Smith       An index set is essentially a subset of the integers. They are used
5*f26ada1bSBarry Smith    for defining scatters and gathers.
62eac72dbSBarry Smith */
72eac72dbSBarry Smith #if !defined(__IS_PACKAGE)
82eac72dbSBarry Smith #define __IS_PACKAGE
92eac72dbSBarry Smith #include "petsc.h"
102eac72dbSBarry Smith 
119e25ed09SBarry Smith #define IS_COOKIE PETSC_COOKIE+2
12f0479e8cSBarry Smith 
132eac72dbSBarry Smith typedef struct _IS* IS;
142eac72dbSBarry Smith 
15de7da479SBarry Smith extern int   ISCreateSeq(MPI_Comm,int,int *,IS *);
16de7da479SBarry Smith extern int   ISCreateStrideSeq(MPI_Comm,int,int,int,IS *);
17de7da479SBarry Smith extern int   ISAddStrideSeq(IS*,int,int,int);
1820563c6bSBarry Smith extern int   ISStrideGetInfo(IS,int *,int*);
192eac72dbSBarry Smith 
20aabeff55SBarry Smith extern int   ISSetPermutation(IS);
21aabeff55SBarry Smith extern int   ISIsPermutation(IS);
2208480c60SBarry Smith extern int   ISSetIdentity(IS);
2308480c60SBarry Smith extern int   ISIsIdentity(IS);
2408480c60SBarry Smith 
25aabeff55SBarry Smith extern int   ISGetIndices(IS,int **);
26aabeff55SBarry Smith extern int   ISRestoreIndices(IS,int **);
27aabeff55SBarry Smith extern int   ISGetSize(IS,int *);
28aabeff55SBarry Smith extern int   ISGetLocalSize(IS,int *);
29aabeff55SBarry Smith extern int   ISDestroy(IS);
30aabeff55SBarry Smith extern int   ISInvertPermutation(IS,IS*);
31aabeff55SBarry Smith extern int   ISView(IS,Viewer);
32aabeff55SBarry Smith 
3364119d58SLois Curfman McInnes typedef enum {IS_SEQ=0, IS_STRIDE_SEQ=2} IndexSetType;
3430913a5eSBarry Smith 
352eac72dbSBarry Smith #endif
36