



Bits error versus x




Bits error versus y
Results
| Original | 20.4 |
|---|---|
| Target | 0.1 |
| Herbie | 5.0 |
if y < -1.36198182498291e+154 or -3.296211233254968e-186 < y < -3.348557597659889e-197Initial program 61.8
rmApplied add-sqr-sqrt61.8
Applied times-frac60.3
Taylor expanded around 0 2.2
if -1.36198182498291e+154 < y < -3.296211233254968e-186 or 1.0226387308524757e-166 < y Initial program 1.3
if -3.348557597659889e-197 < y < 1.0226387308524757e-166Initial program 30.1
Taylor expanded around inf 14.1
Final simplification5.0
herbie shell --seed 2019008
(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: 10.7s)Debug log
1 calls. Slowest were:
| 178.0ms | (/ (* (- x y) (+ x y)) (+ (* x x) (* y y))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 18.2b
Found 2 expressions with local error:
| 18.2b | (/ (* (- x y) (+ x y)) (+ (* x x) (* y y))) |
| 0.0b | (+ (* x x) (* y y)) |
2 calls. Slowest were:
| 9.0ms | (/ (* (- x y) (+ x y)) (+ (* x x) (* y y))) |
| 2.0ms | (+ (* x x) (* y y)) |
2 calls. Slowest were:
| 46.0ms | (/ (* (- x y) (+ x y)) (+ (* x x) (* y y))) |
| 28.0ms | (+ (* x x) (* y y)) |
31 calls. Slowest were:
| 448.0ms | (* (- (* x x) (* y y)) (+ x y)) |
| 337.0ms | (* (- (pow x 3) (pow y 3)) (+ (pow x 3) (pow y 3))) |
| 317.0ms | (* (- (* x x) (* y y)) (+ (pow x 3) (pow y 3))) |
4 alts after pruning (3 fresh and 1 done)
Merged error: 0.3b
Found 4 expressions with local error:
| 17.5b | (sqrt (+ (* x x) (* y y))) |
| 17.5b | (sqrt (+ (* x x) (* y y))) |
| 0.0b | (/ (+ x y) (sqrt (+ (* x x) (* y y)))) |
| 0.0b | (* (/ (- x y) (sqrt (+ (* x x) (* y y)))) (/ (+ x y) (sqrt (+ (* x x) (* y y))))) |
4 calls. Slowest were:
| 12.0ms | (* (/ (- x y) (sqrt (+ (* x x) (* y y)))) (/ (+ x y) (sqrt (+ (* x x) (* y y))))) |
| 5.0ms | (/ (+ x y) (sqrt (+ (* x x) (* y y)))) |
| 2.0ms | (sqrt (+ (* x x) (* y y))) |
4 calls. Slowest were:
| 60.0ms | (/ (+ x y) (sqrt (+ (* x x) (* y y)))) |
| 49.0ms | (* (/ (- x y) (sqrt (+ (* x x) (* y y)))) (/ (+ x y) (sqrt (+ (* x x) (* y y))))) |
| 30.0ms | (sqrt (+ (* x x) (* y y))) |
| 21.0ms | (sqrt (+ (* x x) (* y y))) |
134 calls. Slowest were:
| 295.0ms | (+ (- (log (- x y)) (log (sqrt (+ (* x x) (* y y))))) (- (log (+ x y)) (log (sqrt (+ (* x x) (* y y)))))) |
| 250.0ms | (+ (- (log (- x y)) (log (sqrt (+ (* x x) (* y y))))) (log (/ (+ x y) (sqrt (+ (* x x) (* y y)))))) |
| 243.0ms | (/ (* (* (+ x y) (+ x y)) (+ x y)) (* (* (sqrt (+ (* x x) (* y y))) (sqrt (+ (* x x) (* y y)))) (sqrt (+ (* x x) (* y y))))) |
4 alts after pruning (2 fresh and 2 done)
Merged error: 0.3b
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.3b
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.3b
77.6% (4.5b remaining)
Error of 5.0b against oracle of 0.5b and baseline of 20.4b