



Bits error versus x
Results
| Original | 39.7 |
|---|---|
| Target | 39.2 |
| Herbie | 0.7 |
if x < -0.0017673800546397962Initial program 0.0
rmApplied flip--0.0
rmApplied add-log-exp0.0
if -0.0017673800546397962 < x Initial program 60.1
Taylor expanded around 0 1.1
Final simplification0.7
herbie shell --seed 1137770271
(FPCore (x)
:name "expq2 (section 3.11)"
:herbie-target
(/ 1 (- 1 (exp (- x))))
(/ (exp x) (- (exp x) 1)))
Time bar (total: 1.2m)Debug log
| 84× | 54.0ms | (body real 1280) |
| 80× | 49.0ms | (body exit 10240) |
| 39× | 18.0ms | (body real 640) |
| 33× | 11.0ms | (body real 320) |
| 336× | 10.0ms | (pre true 80) |
| 87× | 9.0ms | (body real 80) |
| 13× | 3.0ms | (body real 160) |
| 8.0ms | (/ (exp x) (- (exp x) 1)) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 41.2b
Found 2 expressions with local error:
| 4.9b | (- (exp x) 1) |
| 0.0b | (/ (exp x) (- (exp x) 1)) |
| 16× | add-sqr-sqrt |
| 12× | times-frac |
| 11× | add-cube-cbrt |
| 11× | *-un-lft-identity |
| 5× | difference-of-sqr-1 |
| 4× | add-cbrt-cube |
| 4× | associate-/r* |
| 3× | associate-/l* |
| 3× | add-exp-log |
| 2× | add-log-exp |
| 2× | flip-- |
| 2× | associate-/r/ |
| 2× | flip3-- |
| 2× | pow1 |
| 1× | div-inv |
| 1× | div-exp |
| 1× | frac-2neg |
| 1× | sub-neg |
| 1× | clear-num |
| 1× | cbrt-undiv |
| 14.0ms | (/ (exp x) (- (exp x) 1)) |
| 7.0ms | (- (exp x) 1) |
| 61.0ms | (/ (exp x) (- (exp x) 1)) |
| 23.0ms | (- (exp x) 1) |
| 412.0ms | (/ (* (* (exp x) (exp x)) (exp x)) (* (* (- (exp x) 1) (- (exp x) 1)) (- (exp x) 1))) |
| 160.0ms | (+ x (+ (* 1/6 (pow x 3)) (* 1/2 (pow x 2)))) |
| 66.0ms | (+ (* (exp x) (exp x)) (+ (* 1 1) (* (exp x) 1))) |
| 38.0ms | (/ (* (cbrt (exp x)) (cbrt (exp x))) (* (cbrt (- (exp x) 1)) (cbrt (- (exp x) 1)))) |
| 20.0ms | (+ (* 1/12 x) (+ (/ 1 x) 1/2)) |
2 alts after pruning (2 fresh and 0 done)
Merged error: 0.0b
Found 1 expressions with local error:
| 0.4b | (* 1/12 x) |
| 1× | add-log-exp |
| 1× | add-cube-cbrt |
| 1× | *-commutative |
| 1× | add-exp-log |
| 1× | add-cbrt-cube |
| 1× | *-un-lft-identity |
| 1× | pow1 |
| 1× | add-sqr-sqrt |
| 0.0ms | (* 1/12 x) |
| 19.0ms | (* 1/12 x) |
| 3.0ms | (* 1/12 x) |
| 3.0ms | (* 1/12 x) |
| 3.0ms | (* 1/12 x) |
2 alts after pruning (1 fresh and 1 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 4.9b | (- (* (exp x) (exp x)) (* 1 1)) |
| 0.0b | (/ (exp x) (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1))) |
| 0.0b | (* (exp x) (exp x)) |
| 0.0b | (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1)) |
| 114× | times-frac |
| 66× | add-cube-cbrt |
| 66× | *-un-lft-identity |
| 66× | add-sqr-sqrt |
| 21× | associate-/r* |
| 17× | difference-of-squares |
| 13× | add-cbrt-cube |
| 11× | associate-/r/ |
| 9× | add-exp-log |
| 9× | pow1 |
| 7× | associate-/l* |
| 6× | add-log-exp |
| 6× | div-inv |
| 5× | flip-+ |
| 5× | flip3-+ |
| 4× | div-exp |
| 4× | cbrt-undiv |
| 3× | associate-*l* |
| 3× | associate-*r* |
| 2× | associate-/l/ |
| 2× | flip-- |
| 2× | flip3-- |
| 2× | frac-2neg |
| 2× | clear-num |
| 1× | cbrt-unprod |
| 1× | pow-prod-up |
| 1× | *-commutative |
| 1× | prod-exp |
| 1× | pow-prod-down |
| 1× | div-sub |
| 1× | diff-log |
| 1× | pow-plus |
| 1× | sub-neg |
| 1× | pow2 |
| 33.0ms | (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1)) |
| 24.0ms | (/ (exp x) (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1))) |
| 13.0ms | (- (* (exp x) (exp x)) (* 1 1)) |
| 9.0ms | (* (exp x) (exp x)) |
| 92.0ms | (/ (exp x) (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1))) |
| 61.0ms | (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (exp x) 1)) |
| 33.0ms | (- (* (exp x) (exp x)) (* 1 1)) |
| 19.0ms | (* (exp x) (exp x)) |
| 1.4s | (/ 1 (/ (- (* (exp x) (exp x)) (* 1 1)) (+ (pow (exp x) 3) (pow 1 3)))) |
| 855.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)))) |
| 772.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))) |
| 543.0ms | (/ (* (cbrt (exp x)) (cbrt (exp x))) (/ (* (cbrt (- (* (exp x) (exp x)) (* 1 1))) (cbrt (- (* (exp x) (exp x)) (* 1 1)))) (* (cbrt (+ (exp x) 1)) (cbrt (+ (exp x) 1))))) |
| 420.0ms | (/ (exp x) (+ (* (exp x) (exp x)) (- (* 1 1) (* (exp x) 1)))) |
2 alts after pruning (1 fresh and 1 done)
Merged error: 0b
Found 4 expressions with local error:
| 4.9b | (log (exp (- (* (exp x) (exp x)) (* 1 1)))) |
| 4.9b | (- (* (exp x) (exp x)) (* 1 1)) |
| 0.0b | (* (exp x) (exp x)) |
| 0.0b | (/ (exp x) (/ (log (exp (- (* (exp x) (exp x)) (* 1 1)))) (+ (exp x) 1))) |
| 186× | times-frac |
| 99× | add-cube-cbrt |
| 99× | *-un-lft-identity |
| 99× | add-sqr-sqrt |
| 65× | log-pow |
| 52× | exp-prod |
| 30× | associate-/r* |
| 22× | pow1 |
| 14× | difference-of-squares |
| 11× | add-cbrt-cube |
| 9× | associate-/r/ |
| 7× | add-exp-log |
| 6× | add-log-exp |
| 5× | div-inv |
| 5× | log-prod |
| 4× | flip-+ |
| 4× | flip3-+ |
| 3× | associate-/l* |
| 3× | associate-*l* |
| 3× | associate-*r* |
| 3× | div-exp |
| 3× | cbrt-undiv |
| 2× | exp-sum |
| 2× | sub-neg |
| 1× | flip-- |
| 1× | cbrt-unprod |
| 1× | pow-prod-up |
| 1× | *-commutative |
| 1× | prod-exp |
| 1× | pow-prod-down |
| 1× | rem-log-exp |
| 1× | diff-log |
| 1× | exp-diff |
| 1× | flip3-- |
| 1× | pow-plus |
| 1× | frac-2neg |
| 1× | clear-num |
| 1× | log-div |
| 1× | pow2 |
| 45.0ms | (/ (exp x) (/ (log (exp (- (* (exp x) (exp x)) (* 1 1)))) (+ (exp x) 1))) |
| 20.0ms | (log (exp (- (* (exp x) (exp x)) (* 1 1)))) |
| 13.0ms | (- (* (exp x) (exp x)) (* 1 1)) |
| 9.0ms | (* (exp x) (exp x)) |
| 86.0ms | (/ (exp x) (/ (log (exp (- (* (exp x) (exp x)) (* 1 1)))) (+ (exp x) 1))) |
| 33.0ms | (log (exp (- (* (exp x) (exp x)) (* 1 1)))) |
| 33.0ms | (- (* (exp x) (exp x)) (* 1 1)) |
| 19.0ms | (* (exp x) (exp x)) |
| 706.0ms | (/ (* (* (exp x) (exp x)) (exp x)) (* (* (/ (log (exp (- (* (exp x) (exp x)) (* 1 1)))) (+ (exp x) 1)) (/ (log (exp (- (* (exp x) (exp x)) (* 1 1)))) (+ (exp x) 1))) (/ (log (exp (- (* (exp x) (exp x)) (* 1 1)))) (+ (exp x) 1)))) |
| 602.0ms | (/ (* (cbrt (exp x)) (cbrt (exp x))) (/ (log (exp (- (* (exp x) (exp x)) (* 1 1)))) (- (* (exp x) (exp x)) (* 1 1)))) |
| 590.0ms | (/ (* (cbrt (exp x)) (cbrt (exp x))) (/ (* (cbrt (log (exp (- (* (exp x) (exp x)) (* 1 1))))) (cbrt (log (exp (- (* (exp x) (exp x)) (* 1 1)))))) (* (cbrt (+ (exp x) 1)) (cbrt (+ (exp x) 1))))) |
| 510.0ms | (/ (cbrt (exp x)) (/ (log (exp (- (* (exp x) (exp x)) (* 1 1)))) (+ (exp x) 1))) |
| 507.0ms | (/ (sqrt (exp x)) (/ (log (exp (- (* (exp x) (exp x)) (* 1 1)))) (+ (exp x) 1))) |
2 alts after pruning (0 fresh and 2 done)
Merged error: 0b
99.6% (0.1b remaining)
Error of 0.7b against oracle of 0.6b and baseline of 21.9b
| 2605× | 1.7s | (body exit 10240) |
| 2247× | 1.5s | (body real 1280) |
| 1578× | 726.0ms | (body real 640) |
| 10608× | 665.0ms | (pre true 80) |
| 818× | 321.0ms | (body real 320) |
| 2913× | 293.0ms | (body real 80) |
| 447× | 94.0ms | (body real 160) |