



Bits error versus x
Results
| Original | 40.4 |
|---|---|
| Target | 40.0 |
| Herbie | 0.6 |
if x < -0.0019474786431094154Initial program 0.0
rmApplied flip--0.0
if -0.0019474786431094154 < x Initial program 60.4
Taylor expanded around 0 0.9
Final simplification0.6
herbie shell --seed 2019002
(FPCore (x)
:name "expq2 (section 3.11)"
:herbie-target
(/ 1 (- 1 (exp (- x))))
(/ (exp x) (- (exp x) 1)))
Time bar (total: 23.2s)Debug log
1 calls. Slowest were:
| 7.0ms | (/ (exp x) (- (exp x) 1)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 43.8b
Found 2 expressions with local error:
| 4.5b | (- (exp x) 1) |
| 0.0b | (/ (exp x) (- (exp x) 1)) |
2 calls. Slowest were:
| 11.0ms | (/ (exp x) (- (exp x) 1)) |
| 5.0ms | (- (exp x) 1) |
2 calls. Slowest were:
| 29.0ms | (/ (exp x) (- (exp x) 1)) |
| 12.0ms | (- (exp x) 1) |
41 calls. Slowest were:
| 641.0ms | (/ (* (* (exp x) (exp x)) (exp x)) (* (* (- (exp x) 1) (- (exp x) 1)) (- (exp x) 1))) |
| 96.0ms | (+ x (+ (* 1/6 (pow x 3)) (* 1/2 (pow x 2)))) |
| 33.0ms | (+ (* (exp x) (exp x)) (+ (* 1 1) (* (exp x) 1))) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 0b
Found 2 expressions with local error:
| 0.3b | (* 1/12 x) |
| 0.0b | (+ (* 1/12 x) (+ (/ 1 x) 1/2)) |
2 calls. Slowest were:
| 6.0ms | (+ (* 1/12 x) (+ (/ 1 x) 1/2)) |
| 0.0ms | (* 1/12 x) |
2 calls. Slowest were:
| 8.0ms | (+ (* 1/12 x) (+ (/ 1 x) 1/2)) |
| 7.0ms | (* 1/12 x) |
7 calls. Slowest were:
| 22.0ms | (* (exp (* 1/12 x)) (exp (+ (/ 1 x) 1/2))) |
| 12.0ms | (+ (* 1/12 x) (+ (/ 1 x) 1/2)) |
| 8.0ms | (+ (* 1/12 x) (+ (/ 1 x) 1/2)) |
2 alts after pruning (1 fresh and 1 done)
Merged error: 0b
Found 4 expressions with local error:
| 4.5b | (- (* (exp x) (exp x)) (* 1 1)) |
| 0.0b | (* (exp x) (exp x)) |
| 0.0b | (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1)) |
| 0.0b | (/ (exp x) (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1))) |
4 calls. Slowest were:
| 13.0ms | (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1)) |
| 12.0ms | (/ (exp x) (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1))) |
| 9.0ms | (- (* (exp x) (exp x)) (* 1 1)) |
4 calls. Slowest were:
| 69.0ms | (/ (exp x) (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1))) |
| 36.0ms | (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1)) |
| 17.0ms | (- (* (exp x) (exp x)) (* 1 1)) |
| 9.0ms | (* (exp x) (exp x)) |
196 calls. Slowest were:
| 939.0ms | (/ 1 (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (pow (exp x) 3) (pow 1 3)))) |
| 696.0ms | (/ (* (* (exp x) (exp x)) (exp x)) (* (* (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1)) (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1))) (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1)))) |
| 616.0ms | (/ (* (* (- (* (exp x) (exp x)) (* 1 1)) (- (* (exp x) (exp x)) (* 1 1))) (- (* (exp x) (exp x)) (* 1 1))) (* (* (+ (exp x) 1) (+ (exp x) 1)) (+ (exp x) 1))) |
2 alts after pruning (0 fresh and 2 done)
Merged error: 0b
99.1% (0.2b remaining)
Error of 0.6b against oracle of 0.4b and baseline of 21.2b