xref: /petsc/src/sys/tests/ex25.c (revision b122ec5aa1bd4469eb4e0673542fb7de3f411254)
1c4762a1bSJed Brown static char help[] = "Tests wrapping of math.h functions for real, complex, and scalar types \n";
2c4762a1bSJed Brown #include <petscsys.h>
3c4762a1bSJed Brown 
4c4762a1bSJed Brown int main(int argc,char **argv)
5c4762a1bSJed Brown {
6c4762a1bSJed Brown 
7*b122ec5aSJacob Faibussowitsch   CHKERRQ(PetscInitialize(&argc,&argv,(char*)0,help));
85f80ce2aSJacob Faibussowitsch   CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"Real tests:\n"));
9c4762a1bSJed Brown   {
10c4762a1bSJed Brown     PetscReal a,b,c;
11c4762a1bSJed Brown     a = PetscRealConstant(0.5);
12c4762a1bSJed Brown     c = PetscRealConstant(2.0);
13c4762a1bSJed Brown 
14c4762a1bSJed Brown     b = PetscSqrtReal(a);
155f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"sqrt(%f) = %f\n",(double)a,(double)b));
16c4762a1bSJed Brown     b = PetscCbrtReal(a);
175f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"cbrt(%f) = %f\n",(double)a,(double)b));
18c4762a1bSJed Brown 
19c4762a1bSJed Brown     b = PetscHypotReal(a,c);
205f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"hypot(%f,%f) = %f\n",(double)a,(double)c,(double)b));
21c4762a1bSJed Brown     b = PetscAtan2Real(a,c);
225f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"atan2(%f,%f) = %f\n",(double)a,(double)c,(double)b));
23c4762a1bSJed Brown 
24c4762a1bSJed Brown     b = PetscPowReal(a,c);
255f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"pow(%f,%f) = %f\n",(double)a,(double)c,(double)b));
26c4762a1bSJed Brown     b = PetscExpReal(a);
275f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"exp(%f) = %f\n",(double)a,(double)b));
28c4762a1bSJed Brown     b = PetscLogReal(a);
295f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"log(%f) = %f\n",(double)a,(double)b));
30c4762a1bSJed Brown     b = PetscLog10Real(a);
315f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"log10(%f) = %f\n",(double)a,(double)b));
32c4762a1bSJed Brown     b = PetscLog2Real(a);
335f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"log2(%f) = %f\n",(double)a,(double)b));
34c4762a1bSJed Brown 
35c4762a1bSJed Brown     b = PetscSinReal(a);
365f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"sin(%f) = %f\n",(double)a,(double)b));
37c4762a1bSJed Brown     b = PetscCosReal(a);
385f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"cos(%f) = %f\n",(double)a,(double)b));
39c4762a1bSJed Brown     b = PetscTanReal(a);
405f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"tan(%f) = %f\n",(double)a,(double)b));
41c4762a1bSJed Brown 
42c4762a1bSJed Brown     b = PetscAsinReal(a);
435f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"asin(%f) = %f\n",(double)a,(double)b));
44c4762a1bSJed Brown     b = PetscAcosReal(a);
455f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"acos(%f) = %f\n",(double)a,(double)b));
46c4762a1bSJed Brown     b = PetscAtanReal(a);
475f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"atan(%f) = %f\n",(double)a,(double)b));
48c4762a1bSJed Brown 
49c4762a1bSJed Brown     b = PetscSinhReal(a);
505f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"sinh(%f) = %f\n",(double)a,(double)b));
51c4762a1bSJed Brown     b = PetscCoshReal(a);
525f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"cosh(%f) = %f\n",(double)a,(double)b));
53c4762a1bSJed Brown     b = PetscTanhReal(a);
545f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"tanh(%f) = %f\n",(double)a,(double)b));
55c4762a1bSJed Brown 
56c4762a1bSJed Brown     b = PetscAsinhReal(a);
575f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"asinh(%f) = %f\n",(double)a,(double)b));
58c4762a1bSJed Brown     b = PetscAcoshReal(c);
595f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"acosh(%f) = %f\n",(double)c,(double)b));
60c4762a1bSJed Brown     b = PetscAtanhReal(a);
615f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"atanh(%f) = %f\n",(double)a,(double)b));
62c4762a1bSJed Brown 
63c4762a1bSJed Brown     b = PetscCeilReal(a);
645f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"ceil(%f) = %f\n",(double)a,(double)b));
65c4762a1bSJed Brown     b = PetscFloorReal(a);
665f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"floor(%f) = %f\n",(double)a,(double)b));
67c4762a1bSJed Brown     b = PetscFmodReal(a,c);
685f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"fmod(%f,%f) = %f\n",(double)a,(double)c,(double)b));
69c4762a1bSJed Brown   }
705f80ce2aSJacob Faibussowitsch   CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"Scalar tests:\n"));
71c4762a1bSJed Brown   {
72c4762a1bSJed Brown     PetscScalar a,b,c;
73c4762a1bSJed Brown     a = PetscRealConstant(0.5);
74c4762a1bSJed Brown     c = PetscRealConstant(2.0);
75c4762a1bSJed Brown 
76c4762a1bSJed Brown     b = PetscAbsScalar(a);
775f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"abs(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
78c4762a1bSJed Brown     b = PetscArgScalar(a);
795f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"arg(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
80c4762a1bSJed Brown     b = PetscConj(a);
815f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"conj(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
82c4762a1bSJed Brown 
83c4762a1bSJed Brown     b = PetscSqrtScalar(a);
845f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"sqrt(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
85c4762a1bSJed Brown 
86c4762a1bSJed Brown     b = PetscPowScalar(a,c);
875f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"pow(%f,%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(c),(double)PetscRealPart(b)));
88c4762a1bSJed Brown     b = PetscExpScalar(a);
895f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"exp(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
90c4762a1bSJed Brown     b = PetscLogScalar(a);
915f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"log(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
92c4762a1bSJed Brown 
93c4762a1bSJed Brown     b = PetscSinScalar(a);
945f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"sin(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
95c4762a1bSJed Brown     b = PetscCosScalar(a);
965f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"cos(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
97c4762a1bSJed Brown     b = PetscTanScalar(a);
985f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"tan(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
99c4762a1bSJed Brown 
100c4762a1bSJed Brown     b = PetscAsinScalar(a);
1015f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"asin(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
102c4762a1bSJed Brown     b = PetscAcosScalar(a);
1035f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"acos(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
104c4762a1bSJed Brown     b = PetscAtanScalar(a);
1055f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"atan(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
106c4762a1bSJed Brown 
107c4762a1bSJed Brown     b = PetscSinhScalar(a);
1085f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"sinh(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
109c4762a1bSJed Brown     b = PetscCoshScalar(a);
1105f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"cosh(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
111c4762a1bSJed Brown     b = PetscTanhScalar(a);
1125f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"tanh(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
113c4762a1bSJed Brown 
114c4762a1bSJed Brown     b = PetscAsinhScalar(a);
1155f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"asinh(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
116c4762a1bSJed Brown     b = PetscAcoshScalar(c);
1175f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"acosh(%f) = %f\n",(double)PetscRealPart(c),(double)PetscRealPart(b)));
118c4762a1bSJed Brown     b = PetscAtanhScalar(a);
1195f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"atanh(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
120c4762a1bSJed Brown   }
121*b122ec5aSJacob Faibussowitsch   CHKERRQ(PetscFinalize());
122*b122ec5aSJacob Faibussowitsch   return 0;
123c4762a1bSJed Brown }
124c4762a1bSJed Brown 
125c4762a1bSJed Brown /*TEST
126c4762a1bSJed Brown 
127c4762a1bSJed Brown    test:
128c4762a1bSJed Brown 
129c4762a1bSJed Brown TEST*/
130