



Bits error versus a




Bits error versus b




Bits error versus c
| Original | 33.1 |
|---|---|
| Target | 20.3 |
| Herbie | 12.8 |
if (/ (exp (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))) (* 2 a)) < -1.7698321559071988e+308 or -2.1719589643769703e-303 < (/ (exp (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))) (* 2 a)) < 2.6966351929230138e-263 or 5.742803864155504e+304 < (/ (exp (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))) (* 2 a)) Initial program 58.8
Applied simplify58.8
rmApplied div-inv58.8
rmApplied flip--59.3
Applied associate-*l/59.3
Applied simplify37.9
Taylor expanded around 0 28.2
Applied simplify21.7
if -1.7698321559071988e+308 < (/ (exp (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))) (* 2 a)) < -2.1719589643769703e-303Initial program 2.1
Applied simplify2.1
rmApplied clear-num2.3
if 2.6966351929230138e-263 < (/ (exp (log (- (sqrt (fma (* 4 a) (- c) (* b b))) b))) (* 2 a)) < 5.742803864155504e+304Initial program 1.8
Applied simplify1.8
rmApplied add-sqr-sqrt1.8
Applied sqrt-prod2.1
Applied fma-neg2.0
Time bar (total: 2.6m)Debug logProfile
herbie shell --seed 2018166 +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)))