



Bits error versus x




Bits error versus y
Results
| Original | 20.1 |
|---|---|
| Target | 0.0 |
| Herbie | 5.5 |
if y < -1.3665520024672976e+154 or 2.9020243613441586e-202 < y < 2.5202678793515666e-174Initial program 58.1
Initial simplification58.1
rmApplied associate-/l*56.8
Taylor expanded around 0 6.1
if -1.3665520024672976e+154 < y < -5.309205025385931e-161 or 2.5202678793515666e-174 < y Initial program 0.8
Initial simplification0.8
if -5.309205025385931e-161 < y < 2.9020243613441586e-202Initial program 29.5
Initial simplification29.5
rmApplied associate-/l*30.1
Taylor expanded around -inf 14.1
Final simplification5.5
herbie shell --seed 2018360
(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: 11.1s)Debug log
1 alts after pruning (1 fresh and 0 done)
Merged error: 19.5b
Found 1 expressions with local error:
| 19.5b | (/ (* (- x y) (+ y x)) (+ (* x x) (* y y))) |
1 calls. Slowest were:
| 8.0ms | (/ (* (- x y) (+ y x)) (+ (* x x) (* y y))) |
1 calls. Slowest were:
| 32.0ms | (/ (* (- x y) (+ y x)) (+ (* x x) (* y y))) |
27 calls. Slowest were:
| 406.0ms | (+ (* (* x x) (* x x)) (- (* (* y y) (* y y)) (* (* x x) (* y y)))) |
| 350.0ms | (* (- (pow x 3) (pow y 3)) (+ (pow y 3) (pow x 3))) |
| 288.0ms | (* (- (* x x) (* y y)) (+ (pow y 3) (pow x 3))) |
4 alts after pruning (3 fresh and 1 done)
Merged error: 0.2b
Found 2 expressions with local error:
| 18.8b | (/ (+ (* x x) (* y y)) (+ y x)) |
| 0.0b | (/ (- x y) (/ (+ (* x x) (* y y)) (+ y x))) |
2 calls. Slowest were:
| 9.0ms | (/ (+ (* x x) (* y y)) (+ y x)) |
| 6.0ms | (/ (- x y) (/ (+ (* x x) (* y y)) (+ y x))) |
2 calls. Slowest were:
| 40.0ms | (/ (- x y) (/ (+ (* x x) (* y y)) (+ y x))) |
| 30.0ms | (/ (+ (* x x) (* y y)) (+ y x)) |
150 calls. Slowest were:
| 478.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)))) |
| 375.0ms | (/ (* (cbrt (- x y)) (cbrt (- x y))) (/ (* (cbrt (+ (* x x) (* y y))) (cbrt (+ (* x x) (* y y)))) (* (cbrt (+ y x)) (cbrt (+ y x))))) |
| 290.0ms | (/ (* (cbrt (- x y)) (cbrt (- x y))) (/ (+ (* x x) (* y y)) (+ (pow y 3) (pow x 3)))) |
4 alts after pruning (2 fresh and 2 done)
Merged error: 0.2b
Found 0 expressions with local error:
0 calls. Slowest were:
0 calls. Slowest were:
0 calls. Slowest were:
4 alts after pruning (1 fresh and 3 done)
Merged error: 0.2b
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.2b
74% (5.1b remaining)
Error of 5.5b against oracle of 0.4b and baseline of 20.1b