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*/