e^{a \cdot x} - 1\begin{array}{l}
\mathbf{if}\;a \cdot x \le -0.01289790256637027461572575504078486119397:\\
\;\;\;\;\frac{\frac{\frac{e^{\left(9 \cdot a\right) \cdot x + \left(\left(9 \cdot a\right) \cdot x + \left(9 \cdot a\right) \cdot x\right)} - \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right) \cdot \left(\left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right) \cdot \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right)\right)}{\left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right) \cdot \left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right) + \left(\left(\left(\left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right) \cdot \left(\left(1 \cdot 1\right) \cdot \left(1 \cdot 1\right)\right)\right) \cdot 1\right) \cdot e^{\left(9 \cdot a\right) \cdot x} + e^{\left(9 \cdot a\right) \cdot x + \left(9 \cdot a\right) \cdot x}\right)}}{\left(e^{3 \cdot \left(a \cdot x\right)} \cdot \left(1 \cdot \left(1 \cdot 1\right)\right) + \left(1 \cdot \left(1 \cdot 1\right)\right) \cdot \left(1 \cdot \left(1 \cdot 1\right)\right)\right) + e^{3 \cdot \left(a \cdot x\right)} \cdot e^{3 \cdot \left(a \cdot x\right)}}}{e^{a \cdot x} \cdot \left(e^{a \cdot x} + 1\right) + 1 \cdot 1}\\
\mathbf{else}:\\
\;\;\;\;\left(\left(\left(a \cdot x\right) \cdot \left(a \cdot x\right)\right) \cdot \left(a \cdot \frac{1}{6}\right) + a\right) \cdot x + \frac{1}{2} \cdot \left(\left(a \cdot x\right) \cdot \left(a \cdot x\right)\right)\\
\end{array}double f(double a, double x) {
double r4850658 = a;
double r4850659 = x;
double r4850660 = r4850658 * r4850659;
double r4850661 = exp(r4850660);
double r4850662 = 1.0;
double r4850663 = r4850661 - r4850662;
return r4850663;
}
double f(double a, double x) {
double r4850664 = a;
double r4850665 = x;
double r4850666 = r4850664 * r4850665;
double r4850667 = -0.012897902566370275;
bool r4850668 = r4850666 <= r4850667;
double r4850669 = 9.0;
double r4850670 = r4850669 * r4850664;
double r4850671 = r4850670 * r4850665;
double r4850672 = r4850671 + r4850671;
double r4850673 = r4850671 + r4850672;
double r4850674 = exp(r4850673);
double r4850675 = 1.0;
double r4850676 = r4850675 * r4850675;
double r4850677 = r4850676 * r4850676;
double r4850678 = r4850677 * r4850677;
double r4850679 = r4850678 * r4850675;
double r4850680 = r4850679 * r4850679;
double r4850681 = r4850679 * r4850680;
double r4850682 = r4850674 - r4850681;
double r4850683 = exp(r4850671);
double r4850684 = r4850679 * r4850683;
double r4850685 = exp(r4850672);
double r4850686 = r4850684 + r4850685;
double r4850687 = r4850680 + r4850686;
double r4850688 = r4850682 / r4850687;
double r4850689 = 3.0;
double r4850690 = r4850689 * r4850666;
double r4850691 = exp(r4850690);
double r4850692 = r4850675 * r4850676;
double r4850693 = r4850691 * r4850692;
double r4850694 = r4850692 * r4850692;
double r4850695 = r4850693 + r4850694;
double r4850696 = r4850691 * r4850691;
double r4850697 = r4850695 + r4850696;
double r4850698 = r4850688 / r4850697;
double r4850699 = exp(r4850666);
double r4850700 = r4850699 + r4850675;
double r4850701 = r4850699 * r4850700;
double r4850702 = r4850701 + r4850676;
double r4850703 = r4850698 / r4850702;
double r4850704 = r4850666 * r4850666;
double r4850705 = 0.16666666666666666;
double r4850706 = r4850664 * r4850705;
double r4850707 = r4850704 * r4850706;
double r4850708 = r4850707 + r4850664;
double r4850709 = r4850708 * r4850665;
double r4850710 = 0.5;
double r4850711 = r4850710 * r4850704;
double r4850712 = r4850709 + r4850711;
double r4850713 = r4850668 ? r4850703 : r4850712;
return r4850713;
}




Bits error versus a




Bits error versus x
Results
| Original | 29.8 |
|---|---|
| Target | 0.1 |
| Herbie | 0.4 |
if (* a x) < -0.012897902566370275Initial program 0.0
rmApplied flip3--0.0
Simplified0.0
Simplified0.0
rmApplied flip3--0.0
Simplified0.0
rmApplied flip3--0.0
Simplified0.0
Simplified0.0
if -0.012897902566370275 < (* a x) Initial program 44.7
Taylor expanded around 0 15.5
Simplified0.5
Final simplification0.4
herbie shell --seed 2019174
(FPCore (a x)
:name "expax (section 3.5)"
:herbie-expected 14
:herbie-target
(if (< (fabs (* a x)) 0.1) (* (* a x) (+ 1.0 (+ (/ (* a x) 2.0) (/ (pow (* a x) 2.0) 6.0)))) (- (exp (* a x)) 1.0))
(- (exp (* a x)) 1.0))