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().\n\n";
5: #include petsc.h
6: #include petscsys.h
10: int main(int argc,char **argv)
11: {
12: int ierr,i,n = 1000,*values,event;
13: PetscRandom rand;
14: PetscScalar value;
16: PetscInitialize(&argc,&argv,(char *)0,help);
17: PetscOptionsGetInt(PETSC_NULL,"-n",&n,PETSC_NULL);
18:
19: PetscRandomCreate(PETSC_COMM_SELF,RANDOM_DEFAULT,&rand);
21: PetscMalloc(n*sizeof(int),&values);
22: for (i=0; i<n; i++) {
23: PetscRandomGetValue(rand,&value);
24: values[i] = (int)(n*PetscRealPart(value) + 2.0);
25: }
26: PetscSortInt(n,values);
28: PetscLogEventRegister(&event,"Sort",0);
29: PetscLogEventBegin(event,0,0,0,0);
30: PetscMalloc(n*sizeof(int),&values);
31: for (i=0; i<n; i++) {
32: PetscRandomGetValue(rand,&value);
33: values[i] = (int)(n*PetscRealPart(value) + 2.0);
34: }
35: PetscSortInt(n,values);
36: PetscLogEventEnd(event,0,0,0,0);
38: for (i=1; i<n; i++) {
39: if (values[i] < values[i-1]) SETERRQ(1,"Values not sorted");
40: }
41: PetscFree(values);
42: PetscRandomDestroy(rand);
44: PetscFinalize();
45: return 0;
46: }
47: