e^{x} - 1\left(1 + \sqrt{e^{x}}\right) \cdot \left(\frac{1}{8} \cdot \left(x \cdot x\right) + \left(\frac{1}{2} + \frac{1}{48} \cdot \left(x \cdot x\right)\right) \cdot x\right)double f(double x) {
double r2293229 = x;
double r2293230 = exp(r2293229);
double r2293231 = 1.0;
double r2293232 = r2293230 - r2293231;
return r2293232;
}
double f(double x) {
double r2293233 = 1.0;
double r2293234 = x;
double r2293235 = exp(r2293234);
double r2293236 = sqrt(r2293235);
double r2293237 = r2293233 + r2293236;
double r2293238 = 0.125;
double r2293239 = r2293234 * r2293234;
double r2293240 = r2293238 * r2293239;
double r2293241 = 0.5;
double r2293242 = 0.020833333333333332;
double r2293243 = r2293242 * r2293239;
double r2293244 = r2293241 + r2293243;
double r2293245 = r2293244 * r2293234;
double r2293246 = r2293240 + r2293245;
double r2293247 = r2293237 * r2293246;
return r2293247;
}




Bits error versus x
Results
| Original | 58.6 |
|---|---|
| Target | 0.5 |
| Herbie | 0.5 |
Initial program 58.6
rmApplied add-sqr-sqrt58.6
Applied difference-of-sqr-158.6
Taylor expanded around 0 0.5
Simplified0.5
Final simplification0.5
herbie shell --seed 2019139
(FPCore (x)
:name "expm1 (example 3.7)"
:pre (< -0.00017 x)
:herbie-target
(* x (+ (+ 1 (/ x 2)) (/ (* x x) 6)))
(- (exp x) 1))