1 ! { dg-options "-fno-range-check -ffree-line-length-none -O0" }
2 ! { dg-add-options ieee }
3 ! { dg-skip-if "PR libfortran/59313" { hppa*-*-hpux* } }
5 ! Check that simplification functions and runtime library agree on ERF,
6 ! ERFC and ERFC_SCALED, for quadruple-precision.
10 use, intrinsic :: iso_fortran_env
13 ! QP will be the largest supported real kind, possibly real(kind=16)
14 integer, parameter :: qp = real_kinds(ubound(real_kinds,dim=1))
19 call check(erf(real(a,kind=qp)), erf(x)) ; \
20 call check(erfc(real(a,kind=qp)), erfc(x)) ; \
21 call check(erfc_scaled(real(a,kind=qp)), erfc_scaled(x))
42 subroutine check (a, b)
43 real(kind=qp), intent(in) :: a, b
44 print *, abs(a-b) / spacing(a)
45 if (abs(a - b) > 10 * spacing(a)) STOP 1