Need help?
<- Back

Comments (16)

  • yread
    Really cool, numerical stability can be tricky as errors can accumulate with each operation and suddenly 53 bits of precision is not enough.Also nice to see an article thats not about AI or politics
  • notpushkin
    Some trivial cases produce... interesting results.For x in [−1.79e308, 1.79e308]:Initial Program: 100.0% accurate, 1.0× speedup def code(x): return math.sqrt((x + 1.0)) Alternative 1: 67.5% accurate, 5.6× speedup def code(x): return 1.0
  • bee_rider
    I wonder, is there a way to only request reformulations that don’t involve branches? The tool already seems quite nice, but that might be a good feature.Also, I’m not sure I understand the speedup. Is it latency or throughput?
  • urschrei
    I resurrected the Rust Herbie lint (now using dylint) a while ago: https://github.com/urschrei/herbie-lint
  • fluorinerocket
    How useful is this when you are using numbers in a reasonable range, like 10^-12 to 10^12? Generally I try to scale my numbers to be in this range, whether by picking the right units or scaling constraints and objectives when doing nonlinear programming/ optimization.Like looking at this example,https://herbie.uwplse.org/demo/b070b371a661191752fe37ce0321c...It is claimed that for the function f(x) =sqrt(x+1) -1Accuracy is increased by from 8.5% accuracy to 98% for alternative 5 Which has f(x) = 0.5xOk so x=99, the right answer is sqrt(100) -1 = 9But 0.5 * 99 = 49.5 which doesn't seem too accurate to me.
  • reikonomusha
    This is an awesome piece of software, one of my favorite little pieces of magic. Finding more precise or more stable floating point formulas is often arduous and requires a lot of familiarity with the behavior of floats. This finds good formulas completely automatically. Super useful for numerical computation.
  • andrepd
    I don't quite understand how they define "accuracy".
  • lutusp
    [flagged]