


Bits error versus x



Bits error versus y



Bits error versus z
Results
if x < -2.3295382770734683e+54 or 6.379273375108504e-54 < x Initial program 0.4
rmApplied *-un-lft-identity0.4
Applied associate-/l*0.5
rmApplied add-cube-cbrt1.1
Applied prod-diff1.1
Simplified0.4
Simplified0.4
rmApplied associate-/r/0.3
Applied add-sqr-sqrt30.9
Applied prod-diff30.8
Simplified0.3
Simplified0.3
if -2.3295382770734683e+54 < x < 6.379273375108504e-54Initial program 2.6
rmApplied associate-*l/0.2
Applied sub-div0.2
Final simplification0.2
herbie shell --seed 2019016 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))
Time bar (total: 20.1s)Debug log
| 313× | (pre true 80) |
| 313× | (body real 80) |
| 28.0ms | (fabs (- (/ (+ x 4) y) (* (/ x y) z))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 1.7b
Found 3 expressions with local error:
| 3.4b | (* (/ x y) z) |
| 0.0b | (- (/ (+ x 4) y) (* (/ x y) z)) |
| 0.0b | (/ (+ x 4) y) |
| 7× | add-cube-cbrt |
| 7× | *-un-lft-identity |
| 7× | add-sqr-sqrt |
| 5× | add-log-exp |
| 4× | div-inv |
| 4× | prod-diff |
| 4× | associate-*l* |
| 4× | fma-neg |
| 3× | associate-/l* |
| 3× | log1p-expm1-u |
| 3× | add-exp-log |
| 3× | associate-*l/ |
| 3× | add-cbrt-cube |
| 3× | pow1 |
| 3× | expm1-log1p-u |
| 2× | associate-/l/ |
| 1× | sub-div |
| 1× | flip-- |
| 1× | flip-+ |
| 1× | frac-sub |
| 1× | *-commutative |
| 1× | diff-log |
| 1× | flip3-- |
| 1× | flip3-+ |
| 1× | frac-2neg |
| 1× | sub-neg |
| 1× | clear-num |
| 7.0ms | (- (/ (+ x 4) y) (* (/ x y) z)) |
| 4.0ms | (/ (+ x 4) y) |
| 3.0ms | (* (/ x y) z) |
| 43.0ms | (- (/ (+ x 4) y) (* (/ x y) z)) |
| 24.0ms | (* (/ x y) z) |
| 24.0ms | (/ (+ x 4) y) |
| 396.0ms | (fma (* (cbrt (/ (+ x 4) y)) (cbrt (/ (+ x 4) y))) (cbrt (/ (+ x 4) y)) (- (* z (/ x y)))) |
| 206.0ms | (fma (+ x 4) (/ 1 y) (- (* z (/ x y)))) |
| 146.0ms | (- (* (+ x 4) y) (* y (* x z))) |
| 95.0ms | (- (+ (/ x y) (* 4 (/ 1 y))) (/ (* x z) y)) |
| 90.0ms | (- (+ (/ x y) (* 4 (/ 1 y))) (/ (* x z) y)) |
4 alts after pruning (4 fresh and 0 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 3.4b | (* (/ x y) z) |
| 0.1b | (/ 1 (/ y (+ x 4))) |
| 0.0b | (- (/ 1 (/ y (+ x 4))) (* (/ x y) z)) |
| 0.0b | (/ y (+ x 4)) |
| 9× | add-cube-cbrt |
| 9× | *-un-lft-identity |
| 9× | associate-/r* |
| 9× | add-sqr-sqrt |
| 7× | associate-/r/ |
| 6× | add-log-exp |
| 6× | div-inv |
| 5× | add-exp-log |
| 5× | prod-diff |
| 5× | fma-neg |
| 5× | pow1 |
| 4× | log1p-expm1-u |
| 4× | associate-*l* |
| 4× | add-cbrt-cube |
| 4× | expm1-log1p-u |
| 2× | flip-+ |
| 2× | associate-*l/ |
| 2× | flip3-+ |
| 2× | frac-2neg |
| 2× | clear-num |
| 1× | inv-pow |
| 1× | flip-- |
| 1× | pow-flip |
| 1× | frac-sub |
| 1× | *-commutative |
| 1× | diff-log |
| 1× | flip3-- |
| 1× | sub-neg |
| 1× | rec-exp |
| 10.0ms | (- (/ 1 (/ y (+ x 4))) (* (/ x y) z)) |
| 5.0ms | (* (/ x y) z) |
| 2.0ms | (/ 1 (/ y (+ x 4))) |
| 1.0ms | (/ y (+ x 4)) |
| 42.0ms | (- (/ 1 (/ y (+ x 4))) (* (/ x y) z)) |
| 24.0ms | (/ y (+ x 4)) |
| 19.0ms | (* (/ x y) z) |
| 13.0ms | (/ 1 (/ y (+ x 4))) |
| 416.0ms | (fma (sqrt (/ 1 (/ y (+ x 4)))) (sqrt (/ 1 (/ y (+ x 4)))) (- (* z (/ x y)))) |
| 378.0ms | (fma (/ 1 y) (+ x 4) (- (* z (/ x y)))) |
| 329.0ms | (- (+ (* 1/64 (* (pow x 2) y)) (* 1/4 y)) (* 1/16 (* x y))) |
| 294.0ms | (fma 1 (/ 1 (/ y (+ x 4))) (- (* z (/ x y)))) |
| 292.0ms | (- (+ (/ y x) (* 16 (/ y (pow x 3)))) (* 4 (/ y (pow x 2)))) |
4 alts after pruning (3 fresh and 1 done)
Merged error: 0.0b
Found 3 expressions with local error:
| 3.9b | (/ z (/ y x)) |
| 0.0b | (- (/ (+ 4 x) y) (/ z (/ y x))) |
| 0.0b | (/ (+ 4 x) y) |
| 20× | prod-diff |
| 17× | *-un-lft-identity |
| 17× | add-sqr-sqrt |
| 15× | add-cube-cbrt |
| 13× | div-inv |
| 5× | add-log-exp |
| 5× | associate-/r/ |
| 4× | fma-neg |
| 4× | associate-/r* |
| 3× | associate-/l* |
| 3× | log1p-expm1-u |
| 3× | add-exp-log |
| 3× | add-cbrt-cube |
| 3× | pow1 |
| 3× | expm1-log1p-u |
| 2× | associate-/l/ |
| 2× | frac-2neg |
| 2× | clear-num |
| 1× | difference-of-squares |
| 1× | distribute-lft-out-- |
| 1× | flip-- |
| 1× | flip-+ |
| 1× | frac-sub |
| 1× | diff-log |
| 1× | flip3-- |
| 1× | flip3-+ |
| 1× | sub-neg |
| 9.0ms | (- (/ (+ 4 x) y) (/ z (/ y x))) |
| 3.0ms | (/ (+ 4 x) y) |
| 0.0ms | (/ z (/ y x)) |
| 25.0ms | (- (/ (+ 4 x) y) (/ z (/ y x))) |
| 21.0ms | (/ z (/ y x)) |
| 16.0ms | (/ (+ 4 x) y) |
| 240.0ms | (fma 1 (/ (+ 4 x) y) (- (* (/ 1 (/ y x)) z))) |
| 236.0ms | (fma (+ 4 x) (/ 1 y) (- (* x (/ z y)))) |
| 234.0ms | (fma (sqrt (/ (+ 4 x) y)) (sqrt (/ (+ 4 x) y)) (- (* (/ 1 (/ y x)) z))) |
| 212.0ms | (fma (- (/ 1 (/ y x))) z (* (/ 1 (/ y x)) z)) |
| 205.0ms | (fma (+ 4 x) (/ 1 y) (- (* (/ z (/ y x)) 1))) |
4 alts after pruning (2 fresh and 2 done)
Merged error: 0b
Found 3 expressions with local error:
| 5.5b | (/ x (/ y z)) |
| 0.0b | (- (/ (+ x 4) y) (/ x (/ y z))) |
| 0.0b | (/ (+ x 4) y) |
| 20× | prod-diff |
| 17× | *-un-lft-identity |
| 17× | add-sqr-sqrt |
| 15× | add-cube-cbrt |
| 13× | div-inv |
| 5× | add-log-exp |
| 5× | associate-/r/ |
| 4× | fma-neg |
| 4× | associate-/r* |
| 3× | associate-/l* |
| 3× | log1p-expm1-u |
| 3× | add-exp-log |
| 3× | add-cbrt-cube |
| 3× | pow1 |
| 3× | expm1-log1p-u |
| 2× | associate-/l/ |
| 2× | frac-2neg |
| 2× | clear-num |
| 1× | difference-of-squares |
| 1× | distribute-lft-out-- |
| 1× | flip-- |
| 1× | flip-+ |
| 1× | frac-sub |
| 1× | diff-log |
| 1× | flip3-- |
| 1× | flip3-+ |
| 1× | sub-neg |
| 12.0ms | (- (/ (+ x 4) y) (/ x (/ y z))) |
| 2.0ms | (/ (+ x 4) y) |
| 1.0ms | (/ x (/ y z)) |
| 42.0ms | (- (/ (+ x 4) y) (/ x (/ y z))) |
| 15.0ms | (/ x (/ y z)) |
| 14.0ms | (/ (+ x 4) y) |
| 276.0ms | (fma 1 (/ (+ x 4) y) (- (* (/ 1 (/ y z)) x))) |
| 230.0ms | (fma (+ x 4) (/ 1 y) (- (* (/ x (/ y z)) 1))) |
| 220.0ms | (fma (* (cbrt (/ (+ x 4) y)) (cbrt (/ (+ x 4) y))) (cbrt (/ (+ x 4) y)) (- (* (/ 1 (/ y z)) x))) |
| 219.0ms | (fma (sqrt (/ (+ x 4) y)) (sqrt (/ (+ x 4) y)) (- (* (/ 1 (/ y z)) x))) |
| 206.0ms | (fma (+ x 4) (/ 1 y) (- (* (sqrt (/ x (/ y z))) (sqrt (/ x (/ y z)))))) |
4 alts after pruning (1 fresh and 3 done)
Merged error: 0b
88.8% (0.2b remaining)
Error of 0.2b against oracle of 0.0b and baseline of 1.8b
| 10087× | (pre true 80) |
| 10087× | (body real 80) |