\frac{\sqrt{2} \cdot t}{\sqrt{\frac{x + 1}{x - 1} \cdot \left(\ell \cdot \ell + 2 \cdot \left(t \cdot t\right)\right) - \ell \cdot \ell}}\begin{array}{l}
\mathbf{if}\;t \le -1.0708477180246655 \cdot 10^{+124}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{\frac{\frac{2}{\sqrt{2}}}{x}}{2} - \frac{2}{\sqrt{2}}\right) \cdot \frac{t}{x} - \sqrt{2} \cdot t}\\
\mathbf{elif}\;t \le 1.853799998927771 \cdot 10^{+116}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\left(2 + \frac{4}{x}\right) \cdot \left(t \cdot t\right) + \left(2 \cdot \frac{\ell}{x}\right) \cdot \ell}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\frac{t}{\sqrt{2}} \cdot \left(\frac{2}{x} + \frac{\frac{2}{x}}{x}\right) + \left(\sqrt{2} \cdot t - \frac{1}{\sqrt{2}} \cdot \frac{t}{x \cdot x}\right)}\\
\end{array}double f(double x, double l, double t) {
double r3238923 = 2.0;
double r3238924 = sqrt(r3238923);
double r3238925 = t;
double r3238926 = r3238924 * r3238925;
double r3238927 = x;
double r3238928 = 1.0;
double r3238929 = r3238927 + r3238928;
double r3238930 = r3238927 - r3238928;
double r3238931 = r3238929 / r3238930;
double r3238932 = l;
double r3238933 = r3238932 * r3238932;
double r3238934 = r3238925 * r3238925;
double r3238935 = r3238923 * r3238934;
double r3238936 = r3238933 + r3238935;
double r3238937 = r3238931 * r3238936;
double r3238938 = r3238937 - r3238933;
double r3238939 = sqrt(r3238938);
double r3238940 = r3238926 / r3238939;
return r3238940;
}
double f(double x, double l, double t) {
double r3238941 = t;
double r3238942 = -1.0708477180246655e+124;
bool r3238943 = r3238941 <= r3238942;
double r3238944 = 2.0;
double r3238945 = sqrt(r3238944);
double r3238946 = r3238945 * r3238941;
double r3238947 = r3238944 / r3238945;
double r3238948 = x;
double r3238949 = r3238947 / r3238948;
double r3238950 = r3238949 / r3238944;
double r3238951 = r3238950 - r3238947;
double r3238952 = r3238941 / r3238948;
double r3238953 = r3238951 * r3238952;
double r3238954 = r3238953 - r3238946;
double r3238955 = r3238946 / r3238954;
double r3238956 = 1.853799998927771e+116;
bool r3238957 = r3238941 <= r3238956;
double r3238958 = 4.0;
double r3238959 = r3238958 / r3238948;
double r3238960 = r3238944 + r3238959;
double r3238961 = r3238941 * r3238941;
double r3238962 = r3238960 * r3238961;
double r3238963 = l;
double r3238964 = r3238963 / r3238948;
double r3238965 = r3238944 * r3238964;
double r3238966 = r3238965 * r3238963;
double r3238967 = r3238962 + r3238966;
double r3238968 = sqrt(r3238967);
double r3238969 = r3238946 / r3238968;
double r3238970 = r3238941 / r3238945;
double r3238971 = r3238944 / r3238948;
double r3238972 = r3238971 / r3238948;
double r3238973 = r3238971 + r3238972;
double r3238974 = r3238970 * r3238973;
double r3238975 = 1.0;
double r3238976 = r3238975 / r3238945;
double r3238977 = r3238948 * r3238948;
double r3238978 = r3238941 / r3238977;
double r3238979 = r3238976 * r3238978;
double r3238980 = r3238946 - r3238979;
double r3238981 = r3238974 + r3238980;
double r3238982 = r3238946 / r3238981;
double r3238983 = r3238957 ? r3238969 : r3238982;
double r3238984 = r3238943 ? r3238955 : r3238983;
return r3238984;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -1.0708477180246655e+124Initial program 55.4
Taylor expanded around inf 55.7
Simplified54.0
Taylor expanded around -inf 2.5
Simplified2.5
if -1.0708477180246655e+124 < t < 1.853799998927771e+116Initial program 35.6
Taylor expanded around inf 16.7
Simplified12.4
Taylor expanded around inf 16.7
Simplified12.4
if 1.853799998927771e+116 < t Initial program 53.0
Taylor expanded around inf 2.4
Simplified2.4
Final simplification8.7
herbie shell --seed 2019104
(FPCore (x l t)
:name "Toniolo and Linder, Equation (7)"
(/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))))