1c6db04a5SJed Brown #include <petscvec.h>
28563dfccSBarry Smith #include <petsctime.h>
34fcfa849SBarry Smith
main(int argc,char ** argv)44fcfa849SBarry Smith int main(int argc, char **argv)
54fcfa849SBarry Smith {
6832676f5SBarry Smith Vec x;
75fb5fb77SSatish Balay PetscReal norm;
8b0a32e0cSBarry Smith PetscLogDouble t1, t2;
9a438ae71SBarry Smith PetscInt n = 10000;
104fcfa849SBarry Smith
11*9566063dSJacob Faibussowitsch PetscCall(PetscInitialize(&argc, &argv, 0, 0));
12*9566063dSJacob Faibussowitsch PetscCall(PetscOptionsGetInt(NULL, NULL, "-n", &n, NULL));
134fcfa849SBarry Smith
14*9566063dSJacob Faibussowitsch PetscCall(VecCreate(PETSC_COMM_SELF, &x));
15*9566063dSJacob Faibussowitsch PetscCall(VecSetSizes(x, n, n));
16*9566063dSJacob Faibussowitsch PetscCall(VecSetFromOptions(x));
17832676f5SBarry Smith
18204a6943SJed Brown PetscPreLoadBegin(PETSC_TRUE, "VecNorm");
19*9566063dSJacob Faibussowitsch PetscCall(PetscTime(&t1));
20*9566063dSJacob Faibussowitsch PetscCall(VecNorm(x, NORM_2, &norm));
21*9566063dSJacob Faibussowitsch PetscCall(VecNorm(x, NORM_2, &norm));
22*9566063dSJacob Faibussowitsch PetscCall(VecNorm(x, NORM_2, &norm));
23*9566063dSJacob Faibussowitsch PetscCall(VecNorm(x, NORM_2, &norm));
24*9566063dSJacob Faibussowitsch PetscCall(VecNorm(x, NORM_2, &norm));
25*9566063dSJacob Faibussowitsch PetscCall(VecNorm(x, NORM_2, &norm));
26*9566063dSJacob Faibussowitsch PetscCall(VecNorm(x, NORM_2, &norm));
27*9566063dSJacob Faibussowitsch PetscCall(VecNorm(x, NORM_2, &norm));
28*9566063dSJacob Faibussowitsch PetscCall(VecNorm(x, NORM_2, &norm));
29*9566063dSJacob Faibussowitsch PetscCall(VecNorm(x, NORM_2, &norm));
30204a6943SJed Brown PetscPreLoadEnd();
31*9566063dSJacob Faibussowitsch PetscCall(PetscTime(&t2));
325fb5fb77SSatish Balay fprintf(stdout, "%s : \n", "VecNorm");
33b4d8b9abSSatish Balay fprintf(stdout, " Time %g\n", t2 - t1);
34*9566063dSJacob Faibussowitsch PetscCall(PetscFinalize());
35b122ec5aSJacob Faibussowitsch return 0;
364fcfa849SBarry Smith }
37