Actual source code: ex12.c
2: static char help[] = "Tests timing PetscSortInt().\n\n";
4: #include petsc.h
5: #include petscsys.h
9: int main(int argc,char **argv)
10: {
11: PetscInt i,n = 1000,*values;
12: int event;
13: PetscRandom rand;
14: PetscScalar value;
17: PetscInitialize(&argc,&argv,(char *)0,help);
18: PetscOptionsGetInt(PETSC_NULL,"-n",&n,PETSC_NULL);
19:
20: PetscRandomCreate(PETSC_COMM_SELF,RANDOM_DEFAULT,&rand);
22: PetscMalloc(n*sizeof(PetscInt),&values);
23: for (i=0; i<n; i++) {
24: PetscRandomGetValue(rand,&value);
25: values[i] = (PetscInt)(n*PetscRealPart(value) + 2.0);
26: }
27: PetscSortInt(n,values);
29: PetscLogEventRegister(&event,"Sort",0);
30: PetscLogEventBegin(event,0,0,0,0);
31: PetscMalloc(n*sizeof(PetscInt),&values);
32: for (i=0; i<n; i++) {
33: PetscRandomGetValue(rand,&value);
34: values[i] = (PetscInt)(n*PetscRealPart(value) + 2.0);
35: }
36: PetscSortInt(n,values);
37: PetscLogEventEnd(event,0,0,0,0);
39: for (i=1; i<n; i++) {
40: if (values[i] < values[i-1]) SETERRQ(1,"Values not sorted");
41: }
42: PetscFree(values);
43: PetscRandomDestroy(rand);
45: PetscFinalize();
46: return 0;
47: }
48: