



Bits error versus a




Bits error versus b




Bits error versus c
| Original | 33.9 |
|---|---|
| Target | 21.1 |
| Herbie | 13.5 |
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)) < -5.0932387033100606e+302 or -2.4227732924595854e-268 < (/ (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)) < 4.245273862080992e-233 or 2.346181819121296e+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 58.6
Applied simplify58.6
rmApplied div-inv58.6
rmApplied flip--59.2
Applied associate-*l/59.2
Applied simplify38.2
Taylor expanded around 0 28.5
Applied simplify22.1
if -5.0932387033100606e+302 < (/ (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)) < -2.4227732924595854e-268 or 4.245273862080992e-233 < (/ (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)) < 2.346181819121296e+307Initial program 2.5
Applied simplify2.5
Time bar (total: 2.0m)Debug logProfile
herbie shell --seed 2018208 +o rules:numerics
(FPCore (a b c)
:name "quadp (p42, positive)"
: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)))