xref: /petsc/src/sys/tests/ex25.c (revision 5f80ce2ab25dff0f4601e710601cbbcecf323266)
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   PetscErrorCode ierr;
7c4762a1bSJed Brown 
8c4762a1bSJed Brown   ierr = PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr;
9*5f80ce2aSJacob Faibussowitsch   CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"Real tests:\n"));
10c4762a1bSJed Brown   {
11c4762a1bSJed Brown     PetscReal a,b,c;
12c4762a1bSJed Brown     a = PetscRealConstant(0.5);
13c4762a1bSJed Brown     c = PetscRealConstant(2.0);
14c4762a1bSJed Brown 
15c4762a1bSJed Brown     b = PetscSqrtReal(a);
16*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"sqrt(%f) = %f\n",(double)a,(double)b));
17c4762a1bSJed Brown     b = PetscCbrtReal(a);
18*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"cbrt(%f) = %f\n",(double)a,(double)b));
19c4762a1bSJed Brown 
20c4762a1bSJed Brown     b = PetscHypotReal(a,c);
21*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"hypot(%f,%f) = %f\n",(double)a,(double)c,(double)b));
22c4762a1bSJed Brown     b = PetscAtan2Real(a,c);
23*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"atan2(%f,%f) = %f\n",(double)a,(double)c,(double)b));
24c4762a1bSJed Brown 
25c4762a1bSJed Brown     b = PetscPowReal(a,c);
26*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"pow(%f,%f) = %f\n",(double)a,(double)c,(double)b));
27c4762a1bSJed Brown     b = PetscExpReal(a);
28*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"exp(%f) = %f\n",(double)a,(double)b));
29c4762a1bSJed Brown     b = PetscLogReal(a);
30*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"log(%f) = %f\n",(double)a,(double)b));
31c4762a1bSJed Brown     b = PetscLog10Real(a);
32*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"log10(%f) = %f\n",(double)a,(double)b));
33c4762a1bSJed Brown     b = PetscLog2Real(a);
34*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"log2(%f) = %f\n",(double)a,(double)b));
35c4762a1bSJed Brown 
36c4762a1bSJed Brown     b = PetscSinReal(a);
37*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"sin(%f) = %f\n",(double)a,(double)b));
38c4762a1bSJed Brown     b = PetscCosReal(a);
39*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"cos(%f) = %f\n",(double)a,(double)b));
40c4762a1bSJed Brown     b = PetscTanReal(a);
41*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"tan(%f) = %f\n",(double)a,(double)b));
42c4762a1bSJed Brown 
43c4762a1bSJed Brown     b = PetscAsinReal(a);
44*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"asin(%f) = %f\n",(double)a,(double)b));
45c4762a1bSJed Brown     b = PetscAcosReal(a);
46*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"acos(%f) = %f\n",(double)a,(double)b));
47c4762a1bSJed Brown     b = PetscAtanReal(a);
48*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"atan(%f) = %f\n",(double)a,(double)b));
49c4762a1bSJed Brown 
50c4762a1bSJed Brown     b = PetscSinhReal(a);
51*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"sinh(%f) = %f\n",(double)a,(double)b));
52c4762a1bSJed Brown     b = PetscCoshReal(a);
53*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"cosh(%f) = %f\n",(double)a,(double)b));
54c4762a1bSJed Brown     b = PetscTanhReal(a);
55*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"tanh(%f) = %f\n",(double)a,(double)b));
56c4762a1bSJed Brown 
57c4762a1bSJed Brown     b = PetscAsinhReal(a);
58*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"asinh(%f) = %f\n",(double)a,(double)b));
59c4762a1bSJed Brown     b = PetscAcoshReal(c);
60*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"acosh(%f) = %f\n",(double)c,(double)b));
61c4762a1bSJed Brown     b = PetscAtanhReal(a);
62*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"atanh(%f) = %f\n",(double)a,(double)b));
63c4762a1bSJed Brown 
64c4762a1bSJed Brown     b = PetscCeilReal(a);
65*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"ceil(%f) = %f\n",(double)a,(double)b));
66c4762a1bSJed Brown     b = PetscFloorReal(a);
67*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"floor(%f) = %f\n",(double)a,(double)b));
68c4762a1bSJed Brown     b = PetscFmodReal(a,c);
69*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"fmod(%f,%f) = %f\n",(double)a,(double)c,(double)b));
70c4762a1bSJed Brown   }
71*5f80ce2aSJacob Faibussowitsch   CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"Scalar tests:\n"));
72c4762a1bSJed Brown   {
73c4762a1bSJed Brown     PetscScalar a,b,c;
74c4762a1bSJed Brown     a = PetscRealConstant(0.5);
75c4762a1bSJed Brown     c = PetscRealConstant(2.0);
76c4762a1bSJed Brown 
77c4762a1bSJed Brown     b = PetscAbsScalar(a);
78*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"abs(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
79c4762a1bSJed Brown     b = PetscArgScalar(a);
80*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"arg(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
81c4762a1bSJed Brown     b = PetscConj(a);
82*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"conj(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
83c4762a1bSJed Brown 
84c4762a1bSJed Brown     b = PetscSqrtScalar(a);
85*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"sqrt(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
86c4762a1bSJed Brown 
87c4762a1bSJed Brown     b = PetscPowScalar(a,c);
88*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"pow(%f,%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(c),(double)PetscRealPart(b)));
89c4762a1bSJed Brown     b = PetscExpScalar(a);
90*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"exp(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
91c4762a1bSJed Brown     b = PetscLogScalar(a);
92*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"log(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
93c4762a1bSJed Brown 
94c4762a1bSJed Brown     b = PetscSinScalar(a);
95*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"sin(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
96c4762a1bSJed Brown     b = PetscCosScalar(a);
97*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"cos(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
98c4762a1bSJed Brown     b = PetscTanScalar(a);
99*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"tan(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
100c4762a1bSJed Brown 
101c4762a1bSJed Brown     b = PetscAsinScalar(a);
102*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"asin(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
103c4762a1bSJed Brown     b = PetscAcosScalar(a);
104*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"acos(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
105c4762a1bSJed Brown     b = PetscAtanScalar(a);
106*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"atan(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
107c4762a1bSJed Brown 
108c4762a1bSJed Brown     b = PetscSinhScalar(a);
109*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"sinh(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
110c4762a1bSJed Brown     b = PetscCoshScalar(a);
111*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"cosh(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
112c4762a1bSJed Brown     b = PetscTanhScalar(a);
113*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"tanh(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
114c4762a1bSJed Brown 
115c4762a1bSJed Brown     b = PetscAsinhScalar(a);
116*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"asinh(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
117c4762a1bSJed Brown     b = PetscAcoshScalar(c);
118*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"acosh(%f) = %f\n",(double)PetscRealPart(c),(double)PetscRealPart(b)));
119c4762a1bSJed Brown     b = PetscAtanhScalar(a);
120*5f80ce2aSJacob Faibussowitsch     CHKERRQ(PetscPrintf(PETSC_COMM_WORLD,"atanh(%f) = %f\n",(double)PetscRealPart(a),(double)PetscRealPart(b)));
121c4762a1bSJed Brown   }
122c4762a1bSJed Brown   ierr = PetscFinalize();
123c4762a1bSJed Brown   return ierr;
124c4762a1bSJed Brown }
125c4762a1bSJed Brown 
126c4762a1bSJed Brown /*TEST
127c4762a1bSJed Brown 
128c4762a1bSJed Brown    test:
129c4762a1bSJed Brown 
130c4762a1bSJed Brown TEST*/
131