



Bits error versus x




Bits error versus y
Results
| Original | 20.0 |
|---|---|
| Target | 0.1 |
| Herbie | 5.2 |
if y < -1.3362591618789198e+154Initial program 63.6
Initial simplification63.6
Taylor expanded around 0 0
if -1.3362591618789198e+154 < y < -1.2206913091651824e-159 or 1.0395458390998354e-187 < y Initial program 1.5
Initial simplification1.5
if -1.2206913091651824e-159 < y < 1.0395458390998354e-187Initial program 30.2
Initial simplification30.2
Taylor expanded around -inf 15.0
Final simplification5.2
herbie shell --seed 2018365
(FPCore (x y)
:name "Kahan p9 Example"
:pre (and (< 0 x 1) (< y 1))
:herbie-target
(if (< 0.5 (fabs (/ x y)) 2) (/ (* (- x y) (+ x y)) (+ (* x x) (* y y))) (- 1 (/ 2 (+ 1 (* (/ x y) (/ x y))))))
(/ (* (- x y) (+ x y)) (+ (* x x) (* y y))))
Time bar (total: 12.5s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 23.9b
Found 2 expressions with local error:
| 23.9b | (/ (* (- x y) (+ y x)) (+ (* x x) (* y y))) |
| 0.0b | (+ (* x x) (* y y)) |
2 calls. Slowest were:
| 10.0ms | (/ (* (- x y) (+ y x)) (+ (* x x) (* y y))) |
| 5.0ms | (+ (* x x) (* y y)) |
2 calls. Slowest were:
| 55.0ms | (/ (* (- x y) (+ y x)) (+ (* x x) (* y y))) |
| 25.0ms | (+ (* x x) (* y y)) |
31 calls. Slowest were:
| 618.0ms | (* (- (* x x) (* y y)) (+ y x)) |
| 324.0ms | (* (- (* x x) (* y y)) (+ (pow y 3) (pow x 3))) |
| 292.0ms | (/ (* (* (* (- x y) (+ y x)) (* (- x y) (+ y x))) (* (- x y) (+ y x))) (* (* (+ (* x x) (* y y)) (+ (* x x) (* y y))) (+ (* x x) (* y y)))) |
4 alts after pruning (3 fresh and 1 done)
Merged error: 0.8b
Found 0 expressions with local error:
0 calls. Slowest were:
0 calls. Slowest were:
0 calls. Slowest were:
4 alts after pruning (2 fresh and 2 done)
Merged error: 0.8b
Found 3 expressions with local error:
| 23.0b | (/ (+ (* x x) (* y y)) (+ y x)) |
| 0.0b | (/ (- x y) (/ (+ (* x x) (* y y)) (+ y x))) |
| 0.0b | (+ (* x x) (* y y)) |
3 calls. Slowest were:
| 18.0ms | (/ (+ (* x x) (* y y)) (+ y x)) |
| 11.0ms | (/ (- x y) (/ (+ (* x x) (* y y)) (+ y x))) |
| 4.0ms | (+ (* x x) (* y y)) |
3 calls. Slowest were:
| 60.0ms | (/ (- x y) (/ (+ (* x x) (* y y)) (+ y x))) |
| 50.0ms | (/ (+ (* x x) (* y y)) (+ y x)) |
| 17.0ms | (+ (* x x) (* y y)) |
154 calls. Slowest were:
| 576.0ms | (/ (* (* (- x y) (- x y)) (- x y)) (* (* (/ (+ (* x x) (* y y)) (+ y x)) (/ (+ (* x x) (* y y)) (+ y x))) (/ (+ (* x x) (* y y)) (+ y x)))) |
| 361.0ms | (/ (* (cbrt (- x y)) (cbrt (- x y))) (/ 1 (* (cbrt (+ y x)) (cbrt (+ y x))))) |
| 344.0ms | (/ (* (cbrt (- x y)) (cbrt (- x y))) (/ (+ (* x x) (* y y)) (+ (pow y 3) (pow x 3)))) |
4 alts after pruning (1 fresh and 3 done)
Merged error: 0.8b
Found 0 expressions with local error:
0 calls. Slowest were:
0 calls. Slowest were:
0 calls. Slowest were:
4 alts after pruning (0 fresh and 4 done)
Merged error: 0.8b
78% (4.6b remaining)
Error of 5.2b against oracle of 0.6b and baseline of 21.7b