1*c4762a1bSJed Brown static char help[] = "Tests IsInf/IsNan routines.\n"; 2*c4762a1bSJed Brown 3*c4762a1bSJed Brown #include <petscsys.h> 4*c4762a1bSJed Brown 5*c4762a1bSJed Brown PETSC_INTERN PetscReal zero; 6*c4762a1bSJed Brown PetscReal zero = 0; 7*c4762a1bSJed Brown 8*c4762a1bSJed Brown #define CALL(call) do { \ 9*c4762a1bSJed Brown PetscErrorCode _ierr; \ 10*c4762a1bSJed Brown _ierr = PetscPrintf(PETSC_COMM_WORLD,"%-32s -> %s\n",#call,(call)?"True":"False");CHKERRQ(_ierr); \ 11*c4762a1bSJed Brown } while(0); 12*c4762a1bSJed Brown 13*c4762a1bSJed Brown int main(int argc, char **argv) { 14*c4762a1bSJed Brown 15*c4762a1bSJed Brown PetscReal neg_zero = PetscRealConstant(-0.0); 16*c4762a1bSJed Brown PetscReal pos_zero = PetscRealConstant(+0.0); 17*c4762a1bSJed Brown PetscReal neg_one = PetscRealConstant(-1.0); 18*c4762a1bSJed Brown PetscReal pos_one = PetscRealConstant(+1.0); 19*c4762a1bSJed Brown PetscReal neg_inf = neg_one/zero; /* -inf */ 20*c4762a1bSJed Brown PetscReal pos_inf = pos_one/zero; /* +inf */ 21*c4762a1bSJed Brown PetscReal x_nan = zero/zero; /* NaN */ 22*c4762a1bSJed Brown 23*c4762a1bSJed Brown PetscErrorCode ierr; 24*c4762a1bSJed Brown ierr = PetscInitialize(&argc,&argv,NULL,help);if (ierr) return ierr; 25*c4762a1bSJed Brown 26*c4762a1bSJed Brown CALL(PetscIsInfReal(neg_zero)); 27*c4762a1bSJed Brown CALL(PetscIsInfReal(pos_zero)); 28*c4762a1bSJed Brown CALL(PetscIsInfReal(neg_one)); 29*c4762a1bSJed Brown CALL(PetscIsInfReal(pos_one)); 30*c4762a1bSJed Brown CALL(PetscIsInfReal(neg_inf)); 31*c4762a1bSJed Brown CALL(PetscIsInfReal(pos_inf)); 32*c4762a1bSJed Brown CALL(PetscIsInfReal(x_nan)); 33*c4762a1bSJed Brown 34*c4762a1bSJed Brown CALL(PetscIsNanReal(neg_zero)); 35*c4762a1bSJed Brown CALL(PetscIsNanReal(pos_zero)); 36*c4762a1bSJed Brown CALL(PetscIsNanReal(neg_one)); 37*c4762a1bSJed Brown CALL(PetscIsNanReal(pos_one)); 38*c4762a1bSJed Brown CALL(PetscIsNanReal(neg_inf)); 39*c4762a1bSJed Brown CALL(PetscIsNanReal(pos_inf)); 40*c4762a1bSJed Brown CALL(PetscIsNanReal(x_nan)); 41*c4762a1bSJed Brown 42*c4762a1bSJed Brown ierr = PetscFinalize(); 43*c4762a1bSJed Brown return ierr; 44*c4762a1bSJed Brown } 45*c4762a1bSJed Brown 46*c4762a1bSJed Brown 47*c4762a1bSJed Brown /*TEST 48*c4762a1bSJed Brown 49*c4762a1bSJed Brown test: 50*c4762a1bSJed Brown output_file: output/ex34.out 51*c4762a1bSJed Brown 52*c4762a1bSJed Brown TEST*/ 53