


Bits error versus x
Initial program 0.0
Simplified0.0
rmApplied expm1-log1p-u0.0
Final simplification0.0
herbie shell --seed 2019022 +o rules:numerics
(FPCore (x)
:name "exp neg sub"
(exp (- (- 1 (* x x)))))
Time bar (total: 5.7s)Debug log
| 28.0ms | 495× | body | 80 | valid |
| 65.0ms | (exp (- (- 1 (* x x)))) |
1 alts after pruning (1 fresh and 0 done)
Merged error: 0.0b
Found 1 expressions with local error:
| 0.0b | (exp (fma x x -1)) |
| 3× | exp-prod |
| 2× | add-log-exp |
| 2× | add-cube-cbrt |
| 2× | *-un-lft-identity |
| 2× | add-sqr-sqrt |
| 1× | rem-exp-log |
| 1× | log1p-expm1-u |
| 1× | fma-udef |
| 1× | add-exp-log |
| 1× | exp-sum |
| 1× | add-cbrt-cube |
| 1× | pow1 |
| 1× | expm1-log1p-u |
| 1.0ms | (exp (fma x x -1)) |
| 16.0ms | (exp (fma x x -1)) |
| 302.0ms | (+ (exp -1) (+ (* (pow x 2) (exp -1)) (* 1/2 (* (pow x 4) (exp -1))))) |
| 20.0ms | (exp (* (cbrt (fma x x -1)) (cbrt (fma x x -1)))) |
| 5.0ms | (exp (sqrt (fma x x -1))) |
| 2.0ms | (exp (fma x x -1)) |
| 2.0ms | (exp (* x x)) |
4 alts after pruning (3 fresh and 1 done)
Merged error: 0.0b
Found 3 expressions with local error:
| 1.0b | (expm1 (log1p (exp (fma x x -1)))) |
| 1.0b | (log1p (exp (fma x x -1))) |
| 0.0b | (exp (fma x x -1)) |
| 4× | add-log-exp |
| 4× | add-cube-cbrt |
| 4× | *-un-lft-identity |
| 4× | expm1-log1p-u |
| 4× | add-sqr-sqrt |
| 3× | log1p-expm1-u |
| 3× | add-exp-log |
| 3× | add-cbrt-cube |
| 3× | exp-prod |
| 3× | pow1 |
| 1× | rem-exp-log |
| 1× | expm1-udef |
| 1× | fma-udef |
| 1× | log1p-expm1 |
| 1× | exp-sum |
| 1× | expm1-log1p |
| 1× | log1p-udef |
| 1.0ms | (exp (fma x x -1)) |
| 0.0ms | (log1p (exp (fma x x -1))) |
| 0.0ms | (expm1 (log1p (exp (fma x x -1)))) |
| 178.0ms | (expm1 (log1p (exp (fma x x -1)))) |
| 115.0ms | (log1p (exp (fma x x -1))) |
| 22.0ms | (exp (fma x x -1)) |
| 389.0ms | (- (+ (* 1/2 (/ (* (pow x 4) (exp -1)) (+ (exp -1) 1))) (+ (/ (* (pow x 2) (exp -1)) (+ (exp -1) 1)) (log (+ (exp -1) 1)))) (* 1/2 (/ (* (pow x 4) (pow (exp -1) 2)) (pow (+ (exp -1) 1) 2)))) |
| 132.0ms | (+ (exp -1) (+ (* (pow x 2) (exp -1)) (* 1/2 (* (pow x 4) (exp -1))))) |
| 126.0ms | (+ (exp -1) (+ (* (pow x 2) (exp -1)) (* 1/2 (* (pow x 4) (exp -1))))) |
| 35.0ms | (log (+ (exp (fma x x -1)) 1)) |
| 33.0ms | (log (+ (exp (fma x x -1)) 1)) |
5 alts after pruning (3 fresh and 2 done)
Merged error: 0.0b
Found 4 expressions with local error:
| 1.0b | (expm1 (log1p (exp (fma x x -1)))) |
| 1.0b | (expm1 (log1p (exp (fma x x -1)))) |
| 1.0b | (log1p (exp (fma x x -1))) |
| 1.0b | (log1p (exp (fma x x -1))) |
| 6× | expm1-log1p-u |
| 4× | add-log-exp |
| 4× | log1p-expm1-u |
| 4× | add-cube-cbrt |
| 4× | add-exp-log |
| 4× | add-cbrt-cube |
| 4× | *-un-lft-identity |
| 4× | pow1 |
| 4× | add-sqr-sqrt |
| 2× | expm1-udef |
| 2× | log1p-expm1 |
| 2× | expm1-log1p |
| 2× | log1p-udef |
| 1.0ms | (log1p (exp (fma x x -1))) |
| 0.0ms | (log1p (exp (fma x x -1))) |
| 0.0ms | (expm1 (log1p (exp (fma x x -1)))) |
| 0.0ms | (expm1 (log1p (exp (fma x x -1)))) |
| 176.0ms | (expm1 (log1p (exp (fma x x -1)))) |
| 136.0ms | (expm1 (log1p (exp (fma x x -1)))) |
| 98.0ms | (log1p (exp (fma x x -1))) |
| 80.0ms | (log1p (exp (fma x x -1))) |
| 334.0ms | (- (+ (* 1/2 (/ (* (pow x 4) (exp -1)) (+ (exp -1) 1))) (+ (/ (* (pow x 2) (exp -1)) (+ (exp -1) 1)) (log (+ (exp -1) 1)))) (* 1/2 (/ (* (pow x 4) (pow (exp -1) 2)) (pow (+ (exp -1) 1) 2)))) |
| 309.0ms | (- (+ (* 1/2 (/ (* (pow x 4) (exp -1)) (+ (exp -1) 1))) (+ (/ (* (pow x 2) (exp -1)) (+ (exp -1) 1)) (log (+ (exp -1) 1)))) (* 1/2 (/ (* (pow x 4) (pow (exp -1) 2)) (pow (+ (exp -1) 1) 2)))) |
| 159.0ms | (+ (exp -1) (+ (* (pow x 2) (exp -1)) (* 1/2 (* (pow x 4) (exp -1))))) |
| 155.0ms | (+ (exp -1) (+ (* (pow x 2) (exp -1)) (* 1/2 (* (pow x 4) (exp -1))))) |
| 42.0ms | (log (+ (exp (fma x x -1)) 1)) |
5 alts after pruning (2 fresh and 3 done)
Merged error: 0.0b
Found 1 expressions with local error:
| 0.1b | (pow E (fma x x -1)) |
| 3× | pow-unpow |
| 2× | add-cube-cbrt |
| 2× | *-un-lft-identity |
| 2× | add-sqr-sqrt |
| 1× | add-log-exp |
| 1× | log1p-expm1-u |
| 1× | fma-udef |
| 1× | add-exp-log |
| 1× | add-cbrt-cube |
| 1× | unpow-prod-up |
| 1× | pow1 |
| 1× | pow-to-exp |
| 1× | expm1-log1p-u |
| 1.0ms | (pow E (fma x x -1)) |
| 37.0ms | (pow E (fma x x -1)) |
| 137.0ms | (+ (exp -1) (+ (* (pow x 2) (exp -1)) (* 1/2 (* (pow x 4) (exp -1))))) |
| 3.0ms | (exp (fma x x -1)) |
| 3.0ms | (sqrt (fma x x -1)) |
| 3.0ms | (exp (fma x x -1)) |
| 2.0ms | (cbrt (fma x x -1)) |
5 alts after pruning (1 fresh and 4 done)
Merged error: 0.0b
0% (0.0b remaining)
Error of 0.0b against oracle of 0.0b and baseline of 0.0b
| 1.0s | 15909× | body | 80 | valid |