Actual source code: ex12.c

  1: /*$Id: ex12.c,v 1.18 2001/08/07 03:02:12 balay Exp $*/

  3: static char help[] = "Tests timing PetscSortInt().nn";

 5:  #include petsc.h
 6:  #include petscsys.h

  8: int main(int argc,char **argv)
  9: {
 10:   int         ierr,i,n = 1000,*values,event;
 11:   PetscRandom rand;
 12:   PetscScalar value;

 14:   PetscInitialize(&argc,&argv,(char *)0,help);
 15:   PetscOptionsGetInt(PETSC_NULL,"-n",&n,PETSC_NULL);
 16: 
 17:   PetscRandomCreate(PETSC_COMM_SELF,RANDOM_DEFAULT,&rand);

 19:   PetscMalloc(n*sizeof(int),&values);
 20:   for (i=0; i<n; i++) {
 21:     PetscRandomGetValue(rand,&value);
 22:     values[i] = (int)(n*PetscRealPart(value) + 2.0);
 23:   }
 24:   PetscSortInt(n,values);

 26:   PetscLogEventRegister(&event,"Sort",0);
 27:   PetscLogEventBegin(event,0,0,0,0);
 28:   PetscMalloc(n*sizeof(int),&values);
 29:   for (i=0; i<n; i++) {
 30:     PetscRandomGetValue(rand,&value);
 31:     values[i] = (int)(n*PetscRealPart(value) + 2.0);
 32:   }
 33:   PetscSortInt(n,values);
 34:   PetscLogEventEnd(event,0,0,0,0);

 36:   for (i=1; i<n; i++) {
 37:     if (values[i] < values[i-1]) SETERRQ(1,"Values not sorted");
 38:   }
 39:   PetscFree(values);
 40:   PetscRandomDestroy(rand);

 42:   PetscFinalize();
 43:   return 0;
 44: }
 45: