Skip to content
  • Iustin Pop's avatar
    Switch Attoparsec parser from double to rational · d58d44f3
    Iustin Pop authored
    
    
    According to the documentation, “This function is almost ten times
    faster than rational, but is slightly less accurate. For 94.2% of
    numbers, this function and rational give identical results, but for
    the remaining 5.8%, this function loses precision around the 15th
    decimal place. For 0.001% of numbers, this function will lose
    precision at the 13th or 14th decimal place.”. What happens is that
    for our tests, it can happen that “Attoparsec.double (show a_double)”
    is quite different from “a_double”, such that we have much more than
    1e-12 absolute difference.
    
    Since our xm lists should not be too big, I think switching to
    rational is better. Next patch also changes the way we compare
    doubles, so maybe this patch is not really needed…
    
    Signed-off-by: default avatarIustin Pop <iustin@google.com>
    Reviewed-by: default avatarMichele Tartara <mtartara@google.com>
    d58d44f3