1 - \frac{1}{2 + \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right) \cdot \left(2 - \frac{\frac{2}{t}}{1 + \frac{1}{t}}\right)}1 - \mathsf{expm1}\left(\mathsf{log1p}\left(\frac{1}{\mathsf{fma}\left(2 - \frac{2}{\mathsf{fma}\left(t, 1, 1\right)}, 2 - \frac{2}{\mathsf{fma}\left(t, 1, 1\right)}, 2\right)}\right)\right)double f(double t) {
double r2916990 = 1.0;
double r2916991 = 2.0;
double r2916992 = t;
double r2916993 = r2916991 / r2916992;
double r2916994 = r2916990 / r2916992;
double r2916995 = r2916990 + r2916994;
double r2916996 = r2916993 / r2916995;
double r2916997 = r2916991 - r2916996;
double r2916998 = r2916997 * r2916997;
double r2916999 = r2916991 + r2916998;
double r2917000 = r2916990 / r2916999;
double r2917001 = r2916990 - r2917000;
return r2917001;
}
double f(double t) {
double r2917002 = 1.0;
double r2917003 = 2.0;
double r2917004 = t;
double r2917005 = fma(r2917004, r2917002, r2917002);
double r2917006 = r2917003 / r2917005;
double r2917007 = r2917003 - r2917006;
double r2917008 = fma(r2917007, r2917007, r2917003);
double r2917009 = r2917002 / r2917008;
double r2917010 = log1p(r2917009);
double r2917011 = expm1(r2917010);
double r2917012 = r2917002 - r2917011;
return r2917012;
}



Bits error versus t
Initial program 0.0
Simplified0.0
rmApplied expm1-log1p-u0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2019174 +o rules:numerics
(FPCore (t)
:name "Kahan p13 Example 3"
(- 1.0 (/ 1.0 (+ 2.0 (* (- 2.0 (/ (/ 2.0 t) (+ 1.0 (/ 1.0 t)))) (- 2.0 (/ (/ 2.0 t) (+ 1.0 (/ 1.0 t)))))))))