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