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