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