Actual source code: ex12.c
petsc-3.3-p7 2013-05-11
2: static char help[] = "Tests timing PetscSortInt().\n\n";
4: #include <petscsys.h>
8: int main(int argc,char **argv)
9: {
10: PetscInt i,n = 1000,*values;
11: int event;
12: PetscRandom rand;
13: PetscScalar value;
16: PetscInitialize(&argc,&argv,(char *)0,help);
17: PetscOptionsGetInt(PETSC_NULL,"-n",&n,PETSC_NULL);
18:
19: PetscRandomCreate(PETSC_COMM_SELF,&rand);
20: PetscRandomSetFromOptions(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("Sort",0,&event);
30: PetscLogEventBegin(event,0,0,0,0);
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(PETSC_COMM_SELF,1,"Values not sorted");
41: }
42: PetscFree(values);
43: PetscRandomDestroy(rand);
45: PetscFinalize();
46: return 0;
47: }
48: