



Bits error versus a




Bits error versus b




Bits error versus c
| Original | 33.9 |
|---|---|
| Target | 21.1 |
| Herbie | 13.2 |
if (/ (exp (* (* (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))) (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b)))) (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))))) (* 2 a)) < -7.917343334784756e+307 or -1.3311966504130146e-250 < (/ (exp (* (* (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))) (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b)))) (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))))) (* 2 a)) < 1.668472586871161e-297 or 6.985866127558625e+307 < (/ (exp (* (* (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))) (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b)))) (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))))) (* 2 a)) Initial program 59.1
Applied simplify59.1
rmApplied div-inv59.1
rmApplied flip--59.5
Applied associate-*l/59.5
Applied simplify38.4
Taylor expanded around 0 28.2
Applied simplify21.8
if -7.917343334784756e+307 < (/ (exp (* (* (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))) (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b)))) (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))))) (* 2 a)) < -1.3311966504130146e-250 or 1.668472586871161e-297 < (/ (exp (* (* (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))) (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b)))) (cbrt (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))))) (* 2 a)) < 6.985866127558625e+307Initial program 2.4
Applied simplify2.4
Time bar (total: 2.2m)Debug logProfile
herbie shell --seed 2018208 +o rules:numerics
(FPCore (a b c)
:name "The quadratic formula (r1)"
:herbie-target
(if (< b 0) (/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ c (* a (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))