Actual source code: ex12.c
2: static char help[] = "Tests timing PetscSortInt().\n\n";
4: #include <petscsys.h>
6: int main(int argc,char **argv)
7: {
8: PetscInt i,n = 1000,*values;
9: #if defined(PETSC_USE_LOG)
10: PetscLogEvent event;
11: #endif
12: PetscRandom rand;
13: PetscReal value;
14: PetscBool values_view=PETSC_FALSE;
15: PetscMPIInt rank;
17: PetscInitialize(&argc,&argv,(char*)0,help);
18: MPI_Comm_rank(PETSC_COMM_WORLD,&rank);
19: PetscOptionsGetInt(NULL,NULL,"-n",&n,NULL);
20: PetscOptionsGetBool(NULL,0,"-values_view",&values_view,NULL);
22: PetscRandomCreate(PETSC_COMM_SELF,&rand);
23: PetscRandomSetFromOptions(rand);
25: PetscMalloc1(n,&values);
26: for (i=0; i<n; i++) {
27: PetscRandomGetValueReal(rand,&value);
28: values[i] = (PetscInt)(n*value + 2.0);
29: }
30: PetscSortInt(n,values);
32: PetscLogEventRegister("Sort",0,&event);
33: PetscLogEventBegin(event,0,0,0,0);
35: for (i=0; i<n; i++) {
36: PetscRandomGetValueReal(rand,&value);
37: values[i] = (PetscInt)(n*value + 2.0);
38: }
39: PetscSortInt(n,values);
40: PetscLogEventEnd(event,0,0,0,0);
42: for (i=1; i<n; i++) {
44: if (values_view && rank == 0) PetscPrintf(PETSC_COMM_SELF,"%" PetscInt_FMT " %" PetscInt_FMT "\n",i,values[i]);
45: }
46: PetscFree(values);
47: PetscRandomDestroy(&rand);
49: PetscFinalize();
50: return 0;
51: }
53: /*TEST
55: test:
56: args: -values_view
58: TEST*/