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