e^{x} - 1x + x \cdot \log \left({\left(e^{x}\right)}^{\left(x \cdot 0.16666666666666666 + 0.5\right)}\right)(FPCore (x) :precision binary64 (- (exp x) 1.0))
(FPCore (x) :precision binary64 (+ x (* x (log (pow (exp x) (+ (* x 0.16666666666666666) 0.5))))))
double code(double x) {
return ((double) (((double) exp(x)) - 1.0));
}
double code(double x) {
return ((double) (x + ((double) (x * ((double) log(((double) pow(((double) exp(x)), ((double) (((double) (x * 0.16666666666666666)) + 0.5))))))))));
}




Bits error versus x
Results
| Original | 58.6 |
|---|---|
| Target | 0.5 |
| Herbie | 0.5 |
Initial program Error: 58.6 bits
Taylor expanded around 0 Error: 0.5 bits
SimplifiedError: 0.5 bits
rmApplied add-log-expError: 0.5 bits
SimplifiedError: 0.5 bits
Final simplificationError: 0.5 bits
herbie shell --seed 2020203
(FPCore (x)
:name "expm1 (example 3.7)"
:precision binary64
:pre (< -0.00017 x)
:herbie-target
(* x (+ (+ 1.0 (/ x 2.0)) (/ (* x x) 6.0)))
(- (exp x) 1.0))