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.nn";

 9:  #include petscis.h

 11: int main(int argc,char **argv)
 12: {
 13:   int        i,n,ierr,*ii,start,stride;
 14:   IS         is;
 15:   PetscTruth flg;

 17:   PetscInitialize(&argc,&argv,(char*)0,help);

 19:   /*
 20:      Test IS of size 0 
 21:   */
 22:   ISCreateStride(PETSC_COMM_SELF,0,0,2,&is);
 23:   ISGetSize(is,&n);
 24:   if (n != 0) SETERRQ(1,"ISCreateStride");
 25:   ISStrideGetInfo(is,&start,&stride);
 26:   if (start != 0) SETERRQ(1,"ISStrideGetInfo");
 27:   if (stride != 2) SETERRQ(1,"ISStrideGetInfo");
 28:   ISStride(is,&flg);
 29:   if (flg != PETSC_TRUE) SETERRQ(1,"ISStride");
 30:   ISGetIndices(is,&ii);
 31:   ISRestoreIndices(is,&ii);
 32:   ISDestroy(is);

 34:   /*
 35:      Test ISGetIndices()
 36:   */
 37:   ISCreateStride(PETSC_COMM_SELF,10000,-8,3,&is);
 38:   ISGetLocalSize(is,&n);
 39:   ISGetIndices(is,&ii);
 40:   for (i=0; i<10000; i++) {
 41:     if (ii[i] != -8 + 3*i) SETERRQ(1,"ISGetIndices");
 42:   }
 43:   ISRestoreIndices(is,&ii);
 44:   ISDestroy(is);

 46:   PetscFinalize();
 47:   return 0;
 48: }
 49: