


Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 1.5
Taylor expanded around 0 1.5
Simplified1.5
Final simplification1.5
herbie shell --seed 2018365 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))
Time bar (total: 17.5s)Debug log
2 alts after pruning (2 fresh and 0 done)
Merged error: 0.1b
Found 3 expressions with local error:
| 2.8b | (* (/ x y) z) |
| 0.0b | (/ (+ x 4) y) |
| 0.0b | (- (/ (+ x 4) y) (* (/ x y) z)) |
3 calls. Slowest were:
| 6.0ms | (- (/ (+ x 4) y) (* (/ x y) z)) |
| 2.0ms | (* (/ x y) z) |
| 2.0ms | (/ (+ x 4) y) |
3 calls. Slowest were:
| 25.0ms | (- (/ (+ x 4) y) (* (/ x y) z)) |
| 14.0ms | (* (/ x y) z) |
| 14.0ms | (/ (+ x 4) y) |
31 calls. Slowest were:
| 478.0ms | (fma (sqrt (/ (+ x 4) y)) (sqrt (/ (+ x 4) y)) (- (* z (/ x y)))) |
| 206.0ms | (- (* (+ x 4) y) (* y (* x z))) |
| 194.0ms | (fma (+ x 4) (/ 1 y) (- (* z (/ x y)))) |
4 alts after pruning (4 fresh and 0 done)
Merged error: 0.0b
Found 3 expressions with local error:
| 2.8b | (* (/ x y) z) |
| 0.0b | (+ (/ x y) (/ 4 y)) |
| 0.0b | (- (+ (/ x y) (/ 4 y)) (* (/ x y) z)) |
3 calls. Slowest were:
| 49.0ms | (- (+ (/ x y) (/ 4 y)) (* (/ x y) z)) |
| 7.0ms | (+ (/ x y) (/ 4 y)) |
| 5.0ms | (* (/ x y) z) |
3 calls. Slowest were:
| 36.0ms | (- (+ (/ x y) (/ 4 y)) (* (/ x y) z)) |
| 23.0ms | (+ (/ x y) (/ 4 y)) |
| 23.0ms | (* (/ x y) z) |
42 calls. Slowest were:
| 532.0ms | (fma (/ 1 y) (+ x 4) (- (* z (/ x y)))) |
| 388.0ms | (* (+ (* (/ x y) (/ x y)) (- (* (/ 4 y) (/ 4 y)) (* (/ x y) (/ 4 y)))) y) |
| 335.0ms | (- (* (+ (* x y) (* y 4)) y) (* (* y y) (* x z))) |
4 alts after pruning (3 fresh and 1 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 2.8b | (* (/ x y) z) |
| 0.1b | (/ 1 (/ y (+ x 4))) |
| 0.0b | (/ y (+ x 4)) |
| 0.0b | (- (/ 1 (/ y (+ x 4))) (* (/ x y) z)) |
4 calls. Slowest were:
| 7.0ms | (- (/ 1 (/ y (+ x 4))) (* (/ x y) z)) |
| 2.0ms | (* (/ x y) z) |
| 1.0ms | (/ 1 (/ y (+ x 4))) |
4 calls. Slowest were:
| 46.0ms | (- (/ 1 (/ y (+ x 4))) (* (/ x y) z)) |
| 24.0ms | (* (/ x y) z) |
| 23.0ms | (/ y (+ x 4)) |
| 20.0ms | (/ 1 (/ y (+ x 4))) |
44 calls. Slowest were:
| 596.0ms | (fma (sqrt (/ 1 (/ y (+ x 4)))) (sqrt (/ 1 (/ y (+ x 4)))) (- (* z (/ x y)))) |
| 386.0ms | (- (+ (* 1/64 (* (pow x 2) y)) (* 1/4 y)) (* 1/16 (* x y))) |
| 384.0ms | (fma (/ 1 y) (+ x 4) (- (* z (/ x y)))) |
4 alts after pruning (2 fresh and 2 done)
Merged error: 0.0b
Found 3 expressions with local error:
| 3.2b | (/ z (/ y x)) |
| 0.0b | (/ (+ 4 x) y) |
| 0.0b | (- (/ (+ 4 x) y) (/ z (/ y x))) |
3 calls. Slowest were:
| 6.0ms | (- (/ (+ 4 x) y) (/ z (/ y x))) |
| 2.0ms | (/ (+ 4 x) y) |
| 0.0ms | (/ z (/ y x)) |
3 calls. Slowest were:
| 33.0ms | (- (/ (+ 4 x) y) (/ z (/ y x))) |
| 16.0ms | (/ z (/ y x)) |
| 13.0ms | (/ (+ 4 x) y) |
66 calls. Slowest were:
| 307.0ms | (fma 1 (/ (+ 4 x) y) (- (* (/ 1 (/ y x)) z))) |
| 267.0ms | (fma (* (cbrt (/ (+ 4 x) y)) (cbrt (/ (+ 4 x) y))) (cbrt (/ (+ 4 x) y)) (- (* (/ 1 (/ y x)) z))) |
| 260.0ms | (fma (- (/ 1 (/ y x))) z (* (/ 1 (/ y x)) z)) |
5 alts after pruning (2 fresh and 3 done)
Merged error: 0.0b
0% (1.5b remaining)
Error of 1.5b against oracle of 0.0b and baseline of 1.5b