



Bits error versus x0




Bits error versus x1
| Original | 8.4 |
|---|---|
| Target | 0.5 |
| Herbie | 4.6 |
if x1 < 0.0009911633300781248Initial program 11.3
rmApplied add-sqr-sqrt10.7
Applied fma-neg11.6
rmApplied add-log-exp10.4
rmApplied add-exp-log10.4
rmApplied add-sqr-sqrt10.4
Applied exp-prod10.4
Applied log-pow11.6
Applied log-prod11.6
Applied exp-sum11.6
Simplified8.3
if 0.0009911633300781248 < x1 Initial program 5.5
rmApplied add-sqr-sqrt4.4
Applied fma-neg3.2
rmApplied add-log-exp1.6
rmApplied add-exp-log1.0
Final simplification4.6
herbie shell --seed 2019005 +o rules:numerics
(FPCore (x0 x1)
:name "(- (/ x0 (- 1 x1)) x0)"
:pre (or (and (== x0 1.855) (== x1 0.000209)) (and (== x0 2.985) (== x1 0.0186)))
:herbie-target
(/ (* x0 x1) (- 1 x1))
(- (/ x0 (- 1 x1)) x0))
Time bar (total: 4.5s)Debug log
1 calls. Slowest were:
| 4.0ms | (- (/ x0 (- 1 x1)) x0) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 8.4b
Found 2 expressions with local error:
| 7.5b | (- (/ x0 (- 1 x1)) x0) |
| 1.0b | (/ x0 (- 1 x1)) |
2 calls. Slowest were:
| 5.0ms | (- (/ x0 (- 1 x1)) x0) |
| 0.0ms | (/ x0 (- 1 x1)) |
2 calls. Slowest were:
| 24.0ms | (/ x0 (- 1 x1)) |
| 24.0ms | (- (/ x0 (- 1 x1)) x0) |
15 calls. Slowest were:
| 779.0ms | (+ (* x0 (pow x1 3)) (+ (* x0 (pow x1 2)) (* x0 x1))) |
| 113.0ms | (+ x0 (+ (* x0 x1) (* x0 (pow x1 2)))) |
| 56.0ms | (- (+ (/ x0 (pow x1 3)) (+ (/ x0 (pow x1 2)) (/ x0 x1)))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 6.8b
Found 3 expressions with local error:
| 7.4b | (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)) |
| 1.0b | (/ x0 (- 1 x1)) |
| 1.0b | (/ x0 (- 1 x1)) |
3 calls. Slowest were:
| 1.0ms | (/ x0 (- 1 x1)) |
| 1.0ms | (/ x0 (- 1 x1)) |
| 0.0ms | (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)) |
3 calls. Slowest were:
| 105.0ms | (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)) |
| 25.0ms | (/ x0 (- 1 x1)) |
| 24.0ms | (/ x0 (- 1 x1)) |
19 calls. Slowest were:
| 169.0ms | (+ x0 (+ (* x0 x1) (* x0 (pow x1 2)))) |
| 127.0ms | (+ x0 (+ (* x0 x1) (* x0 (pow x1 2)))) |
| 85.0ms | (- (+ (/ x0 (pow x1 3)) (+ (/ x0 (pow x1 2)) (/ x0 x1)))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 6.0b
Found 4 expressions with local error:
| 7.4b | (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)) |
| 6.0b | (log (exp (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)))) |
| 1.0b | (/ x0 (- 1 x1)) |
| 1.0b | (/ x0 (- 1 x1)) |
4 calls. Slowest were:
| 4.0ms | (log (exp (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)))) |
| 1.0ms | (/ x0 (- 1 x1)) |
| 1.0ms | (/ x0 (- 1 x1)) |
4 calls. Slowest were:
| 103.0ms | (log (exp (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)))) |
| 77.0ms | (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)) |
| 15.0ms | (/ x0 (- 1 x1)) |
| 15.0ms | (/ x0 (- 1 x1)) |
30 calls. Slowest were:
| 107.0ms | (+ x0 (+ (* x0 x1) (* x0 (pow x1 2)))) |
| 96.0ms | (+ x0 (+ (* x0 x1) (* x0 (pow x1 2)))) |
| 58.0ms | (- (+ (/ x0 (pow x1 3)) (+ (/ x0 (pow x1 2)) (/ x0 x1)))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 4.6b
Found 4 expressions with local error:
| 7.4b | (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)) |
| 6.0b | (log (exp (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)))) |
| 1.0b | (exp (log (log (exp (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)))))) |
| 1.0b | (/ x0 (- 1 x1)) |
4 calls. Slowest were:
| 4.0ms | (exp (log (log (exp (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)))))) |
| 4.0ms | (log (exp (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)))) |
| 1.0ms | (/ x0 (- 1 x1)) |
4 calls. Slowest were:
| 109.0ms | (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)) |
| 93.0ms | (exp (log (log (exp (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)))))) |
| 85.0ms | (log (exp (fma (sqrt (/ x0 (- 1 x1))) (sqrt (/ x0 (- 1 x1))) (- x0)))) |
| 24.0ms | (/ x0 (- 1 x1)) |
37 calls. Slowest were:
| 168.0ms | (+ x0 (+ (* x0 x1) (* x0 (pow x1 2)))) |
| 86.0ms | (- (+ (/ x0 (pow x1 3)) (+ (/ x0 (pow x1 2)) (/ x0 x1)))) |
| 85.0ms | (- (+ (/ x0 (pow x1 3)) (+ (/ x0 (pow x1 2)) (/ x0 x1)))) |
2 alts after pruning (1 fresh and 1 done)
Merged error: 4.6b
100% (0.0b remaining)
Error of 4.6b against oracle of 4.6b and baseline of 5.7b