Actual source code: ex2.c
1: /*$Id: ex2.c,v 1.21 2001/04/10 19:34:49 bsmith Exp $*/
3: /*
4: Formatted test for ISStride routines.
5: */
7: static char help[] = "Tests IS stride routines.\n\n";
9: #include petscis.h
13: int main(int argc,char **argv)
14: {
15: int i,n,ierr,*ii,start,stride;
16: IS is;
17: PetscTruth flg;
19: PetscInitialize(&argc,&argv,(char*)0,help);
21: /*
22: Test IS of size 0
23: */
24: ISCreateStride(PETSC_COMM_SELF,0,0,2,&is);
25: ISGetSize(is,&n);
26: if (n != 0) SETERRQ(1,"ISCreateStride");
27: ISStrideGetInfo(is,&start,&stride);
28: if (start != 0) SETERRQ(1,"ISStrideGetInfo");
29: if (stride != 2) SETERRQ(1,"ISStrideGetInfo");
30: ISStride(is,&flg);
31: if (flg != PETSC_TRUE) SETERRQ(1,"ISStride");
32: ISGetIndices(is,&ii);
33: ISRestoreIndices(is,&ii);
34: ISDestroy(is);
36: /*
37: Test ISGetIndices()
38: */
39: ISCreateStride(PETSC_COMM_SELF,10000,-8,3,&is);
40: ISGetLocalSize(is,&n);
41: ISGetIndices(is,&ii);
42: for (i=0; i<10000; i++) {
43: if (ii[i] != -8 + 3*i) SETERRQ(1,"ISGetIndices");
44: }
45: ISRestoreIndices(is,&ii);
46: ISDestroy(is);
48: PetscFinalize();
49: return 0;
50: }
51: