almost_equal_r32 Function

private elemental function almost_equal_r32(a, b, rtol, atol)

Uses

Are two numbers almost equal

Uses the same predicate as numpy's isclose:

abs(a - b) <= (atol + rtol * abs(b))

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in) :: a
real(kind=real32), intent(in) :: b
real(kind=real32), intent(in), optional :: rtol
real(kind=real32), intent(in), optional :: atol

Return Value logical


Contents

Source Code


Source Code

  logical elemental function almost_equal_r32(a, b, rtol, atol)
    use optionals, only: get_option_with_default
    real(real32), intent(in) :: a, b
    real(real32), intent(in), optional :: rtol
    real(real32), intent(in), optional :: atol

    real(real32) :: rtol_val, atol_val

    rtol_val = get_option_with_default(rtol, 1e-5_real32)
    atol_val = get_option_with_default(atol, 1e-8_real32)

    almost_equal_r32 = (abs(a - b) <= (atol_val + (rtol_val * abs(b))))
  end function almost_equal_r32