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