


Bits error versus x



Bits error versus y



Bits error versus z
if x < -3.669195055065622e+140 or 5.1753847487161616e-114 < x Initial program 0.7
Taylor expanded around -inf 7.3
Simplified0.7
if -3.669195055065622e+140 < x < 5.1753847487161616e-114Initial program 2.2
rmApplied div-inv2.2
Applied associate-*l*5.0
Taylor expanded around inf 0.7
Final simplification0.7
herbie shell --seed 2019004 +o rules:numerics
(FPCore (x y z)
:name "fabs fraction 1"
(fabs (- (/ (+ x 4) y) (* (/ x y) z))))
Time bar (total: 10.6s)Debug log
1 calls. Slowest were:
| 41.0ms | (fabs (- (/ (+ x 4) y) (* (/ x y) z))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 2.0b
Found 3 expressions with local error:
| 3.3b | (* (/ x y) z) |
| 0.0b | (- (/ (+ x 4) y) (* (/ x y) z)) |
| 0.0b | (/ (+ x 4) y) |
3 calls. Slowest were:
| 11.0ms | (- (/ (+ x 4) y) (* (/ x y) z)) |
| 5.0ms | (/ (+ x 4) y) |
| 2.0ms | (* (/ x y) z) |
3 calls. Slowest were:
| 50.0ms | (- (/ (+ x 4) y) (* (/ x y) z)) |
| 25.0ms | (* (/ x y) z) |
| 23.0ms | (/ (+ x 4) y) |
31 calls. Slowest were:
| 262.0ms | (fma (+ x 4) (/ 1 y) (- (* z (/ x y)))) |
| 163.0ms | (- (* (+ x 4) y) (* y (* x z))) |
| 87.0ms | (- (+ (/ x y) (* 4 (/ 1 y))) (/ (* x z) y)) |
4 alts after pruning (4 fresh and 0 done)
Merged error: 0.0b
Found 2 expressions with local error:
| 2.0b | (fma z (- (/ x y)) (+ (/ x y) (/ 4 y))) |
| 0.0b | (+ (/ x y) (/ 4 y)) |
2 calls. Slowest were:
| 4.0ms | (+ (/ x y) (/ 4 y)) |
| 0.0ms | (fma z (- (/ x y)) (+ (/ x y) (/ 4 y))) |
2 calls. Slowest were:
| 44.0ms | (fma z (- (/ x y)) (+ (/ x y) (/ 4 y))) |
| 15.0ms | (+ (/ x y) (/ 4 y)) |
14 calls. Slowest were:
| 124.0ms | (- (+ (/ x y) (* 4 (/ 1 y))) (/ (* x z) y)) |
| 122.0ms | (- (+ (/ x y) (* 4 (/ 1 y))) (/ (* x z) y)) |
| 94.0ms | (- (+ (/ x y) (* 4 (/ 1 y))) (/ (* x z) y)) |
4 alts after pruning (3 fresh and 1 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 6.0b | (* x (* (/ 1 y) z)) |
| 0.2b | (* (/ 1 y) z) |
| 0.0b | (- (/ (+ x 4) y) (* x (* (/ 1 y) z))) |
| 0.0b | (/ (+ x 4) y) |
4 calls. Slowest were:
| 9.0ms | (/ (+ x 4) y) |
| 8.0ms | (- (/ (+ x 4) y) (* x (* (/ 1 y) z))) |
| 3.0ms | (* x (* (/ 1 y) z)) |
4 calls. Slowest were:
| 28.0ms | (- (/ (+ x 4) y) (* x (* (/ 1 y) z))) |
| 24.0ms | (/ (+ x 4) y) |
| 23.0ms | (* x (* (/ 1 y) z)) |
| 6.0ms | (* (/ 1 y) z) |
34 calls. Slowest were:
| 441.0ms | (fma (sqrt (/ (+ x 4) y)) (sqrt (/ (+ x 4) y)) (- (* (* (/ 1 y) z) x))) |
| 412.0ms | (fma 1 (/ (+ x 4) y) (- (* (* (/ 1 y) z) x))) |
| 378.0ms | (fma (* (cbrt (/ (+ x 4) y)) (cbrt (/ (+ x 4) y))) (cbrt (/ (+ x 4) y)) (- (* (* (/ 1 y) z) x))) |
5 alts after pruning (3 fresh and 2 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 6.0b | (* x (* (* (cbrt (/ 1 y)) (cbrt (/ 1 y))) (* (cbrt (/ 1 y)) z))) |
| 0.6b | (cbrt (/ 1 y)) |
| 0.6b | (cbrt (/ 1 y)) |
| 0.6b | (cbrt (/ 1 y)) |
4 calls. Slowest were:
| 34.0ms | (* x (* (* (cbrt (/ 1 y)) (cbrt (/ 1 y))) (* (cbrt (/ 1 y)) z))) |
| 1.0ms | (cbrt (/ 1 y)) |
| 1.0ms | (cbrt (/ 1 y)) |
4 calls. Slowest were:
| 632.0ms | (cbrt (/ 1 y)) |
| 273.0ms | (cbrt (/ 1 y)) |
| 251.0ms | (cbrt (/ 1 y)) |
| 44.0ms | (* x (* (* (cbrt (/ 1 y)) (cbrt (/ 1 y))) (* (cbrt (/ 1 y)) z))) |
35 calls. Slowest were:
| 6.0ms | (/ (* x z) y) |
| 5.0ms | (* (* (cbrt y) (cbrt y)) (cbrt y)) |
| 5.0ms | (/ (* x z) y) |
5 alts after pruning (3 fresh and 2 done)
Merged error: 0.0b
57.5% (0.7b remaining)
Error of 0.7b against oracle of 0.0b and baseline of 1.7b