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