Date: 2013-07-02T14:40:29+00:00

Actual source code: ex2.c
petsc-3.4.2 2013-07-02

      2: /*
      3:        Formatted test for ISStride routines.
      4: */

      6: static char help[] = "Tests IS stride routines.\n\n";

      8: #include <petscis.h>
      9: #include <petscviewer.h>

     13: int main(int argc,char **argv)
     14: {
     15:   PetscInt       i,n,start,stride;
     16:   const PetscInt *ii;
     17:   IS             is;
     18:   PetscBool      flg;

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

     23:   /*
     24:      Test IS of size 0
     25:   */
     26:   ISCreateStride(PETSC_COMM_SELF,0,0,2,&is);
     27:   ISGetSize(is,&n);
     28:   if (n != 0) SETERRQ(PETSC_COMM_SELF,1,"ISCreateStride");
     29:   ISStrideGetInfo(is,&start,&stride);
     30:   if (start != 0) SETERRQ(PETSC_COMM_SELF,1,"ISStrideGetInfo");
     31:   if (stride != 2) SETERRQ(PETSC_COMM_SELF,1,"ISStrideGetInfo");
     32:   PetscObjectTypeCompare((PetscObject)is,ISSTRIDE,&flg);
     33:   if (!flg) SETERRQ(PETSC_COMM_SELF,1,"ISStride");
     34:   ISGetIndices(is,&ii);
     35:   ISRestoreIndices(is,&ii);
     36:   ISDestroy(&is);

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

     50:   PetscFinalize();
     51:   return 0;
     52: }