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,&rand);
21: PetscRandomSetFromOptions(rand);
23: PetscMalloc(n*sizeof(PetscInt),&values);
24: for (i=0; i<n; i++) {
25: PetscRandomGetValue(rand,&value);
26: values[i] = (PetscInt)(n*PetscRealPart(value) + 2.0);
27: }
28: PetscSortInt(n,values);
30: PetscLogEventRegister("Sort",0,&event);
31: PetscLogEventBegin(event,0,0,0,0);
33: for (i=0; i<n; i++) {
34: PetscRandomGetValue(rand,&value);
35: values[i] = (PetscInt)(n*PetscRealPart(value) + 2.0);
36: }
37: PetscSortInt(n,values);
38: PetscLogEventEnd(event,0,0,0,0);
40: for (i=1; i<n; i++) {
41: if (values[i] < values[i-1]) SETERRQ(1,"Values not sorted");
42: }
43: PetscFree(values);
44: PetscRandomDestroy(rand);
46: PetscFinalize();
47: return 0;
48: }
49: