\frac{e^{x} - 1}{x}\begin{array}{l}
\mathbf{if}\;x \le -9.248950464724178875501603425135499492171 \cdot 10^{-5}:\\
\;\;\;\;\frac{\frac{\frac{e^{\left(3 \cdot x + 3 \cdot x\right) + 3 \cdot x} - \left(\left(1 \cdot 1\right) \cdot 1\right) \cdot \left(\left(\left(1 \cdot 1\right) \cdot 1\right) \cdot \left(\left(1 \cdot 1\right) \cdot 1\right)\right)}{e^{3 \cdot x} \cdot e^{3 \cdot x} + \left(\left(1 \cdot 1\right) \cdot 1\right) \cdot \left(\left(1 \cdot 1\right) \cdot 1 + e^{3 \cdot x}\right)}}{e^{x} \cdot e^{x} + \left(1 \cdot 1 + e^{x} \cdot 1\right)}}{x}\\
\mathbf{else}:\\
\;\;\;\;1 + x \cdot \left(\frac{1}{2} + \frac{1}{6} \cdot x\right)\\
\end{array}double f(double x) {
double r6309382 = x;
double r6309383 = exp(r6309382);
double r6309384 = 1.0;
double r6309385 = r6309383 - r6309384;
double r6309386 = r6309385 / r6309382;
return r6309386;
}
double f(double x) {
double r6309387 = x;
double r6309388 = -9.248950464724179e-05;
bool r6309389 = r6309387 <= r6309388;
double r6309390 = 3.0;
double r6309391 = r6309390 * r6309387;
double r6309392 = r6309391 + r6309391;
double r6309393 = r6309392 + r6309391;
double r6309394 = exp(r6309393);
double r6309395 = 1.0;
double r6309396 = r6309395 * r6309395;
double r6309397 = r6309396 * r6309395;
double r6309398 = r6309397 * r6309397;
double r6309399 = r6309397 * r6309398;
double r6309400 = r6309394 - r6309399;
double r6309401 = exp(r6309391);
double r6309402 = r6309401 * r6309401;
double r6309403 = r6309397 + r6309401;
double r6309404 = r6309397 * r6309403;
double r6309405 = r6309402 + r6309404;
double r6309406 = r6309400 / r6309405;
double r6309407 = exp(r6309387);
double r6309408 = r6309407 * r6309407;
double r6309409 = r6309407 * r6309395;
double r6309410 = r6309396 + r6309409;
double r6309411 = r6309408 + r6309410;
double r6309412 = r6309406 / r6309411;
double r6309413 = r6309412 / r6309387;
double r6309414 = 1.0;
double r6309415 = 0.5;
double r6309416 = 0.16666666666666666;
double r6309417 = r6309416 * r6309387;
double r6309418 = r6309415 + r6309417;
double r6309419 = r6309387 * r6309418;
double r6309420 = r6309414 + r6309419;
double r6309421 = r6309389 ? r6309413 : r6309420;
return r6309421;
}




Bits error versus x
Results
| Original | 39.6 |
|---|---|
| Target | 40.0 |
| Herbie | 0.3 |
if x < -9.248950464724179e-05Initial program 0.1
rmApplied flip3--0.1
Simplified0.1
rmApplied flip3--0.1
Simplified0.1
Simplified0.1
if -9.248950464724179e-05 < x Initial program 60.2
Taylor expanded around 0 0.4
Simplified0.4
Final simplification0.3
herbie shell --seed 2019169
(FPCore (x)
:name "Kahan's exp quotient"
:herbie-target
(if (and (< x 1.0) (> x -1.0)) (/ (- (exp x) 1.0) (log (exp x))) (/ (- (exp x) 1.0) x))
(/ (- (exp x) 1.0) x))