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