\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 -4.318745676503489222703826814331080490651 \cdot 10^{101}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{-\mathsf{fma}\left(t, \sqrt{2}, 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right)}\\
\mathbf{elif}\;t \le 2.555309788910298182685313601676848640915 \cdot 10^{120}:\\
\;\;\;\;\frac{\left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot t\right)}{\sqrt{\mathsf{fma}\left(2, \mathsf{fma}\left(t, t, \left|\ell\right| \cdot \frac{\left|\ell\right|}{x}\right), 4 \cdot \frac{{t}^{2}}{x}\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\mathsf{fma}\left(t, \sqrt{2}, 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right)}\\
\end{array}double f(double x, double l, double t) {
double r33265 = 2.0;
double r33266 = sqrt(r33265);
double r33267 = t;
double r33268 = r33266 * r33267;
double r33269 = x;
double r33270 = 1.0;
double r33271 = r33269 + r33270;
double r33272 = r33269 - r33270;
double r33273 = r33271 / r33272;
double r33274 = l;
double r33275 = r33274 * r33274;
double r33276 = r33267 * r33267;
double r33277 = r33265 * r33276;
double r33278 = r33275 + r33277;
double r33279 = r33273 * r33278;
double r33280 = r33279 - r33275;
double r33281 = sqrt(r33280);
double r33282 = r33268 / r33281;
return r33282;
}
double f(double x, double l, double t) {
double r33283 = t;
double r33284 = -4.318745676503489e+101;
bool r33285 = r33283 <= r33284;
double r33286 = 2.0;
double r33287 = sqrt(r33286);
double r33288 = r33287 * r33283;
double r33289 = x;
double r33290 = r33287 * r33289;
double r33291 = r33283 / r33290;
double r33292 = r33286 * r33291;
double r33293 = fma(r33283, r33287, r33292);
double r33294 = -r33293;
double r33295 = r33288 / r33294;
double r33296 = 2.5553097889102982e+120;
bool r33297 = r33283 <= r33296;
double r33298 = cbrt(r33287);
double r33299 = r33298 * r33298;
double r33300 = r33298 * r33283;
double r33301 = r33299 * r33300;
double r33302 = l;
double r33303 = fabs(r33302);
double r33304 = r33303 / r33289;
double r33305 = r33303 * r33304;
double r33306 = fma(r33283, r33283, r33305);
double r33307 = 4.0;
double r33308 = 2.0;
double r33309 = pow(r33283, r33308);
double r33310 = r33309 / r33289;
double r33311 = r33307 * r33310;
double r33312 = fma(r33286, r33306, r33311);
double r33313 = sqrt(r33312);
double r33314 = r33301 / r33313;
double r33315 = r33288 / r33293;
double r33316 = r33297 ? r33314 : r33315;
double r33317 = r33285 ? r33295 : r33316;
return r33317;
}



Bits error versus x



Bits error versus l



Bits error versus t
if t < -4.318745676503489e+101Initial program 50.3
Simplified50.3
Taylor expanded around inf 50.6
Simplified50.6
Taylor expanded around -inf 3.1
Simplified3.1
if -4.318745676503489e+101 < t < 2.5553097889102982e+120Initial program 36.8
Simplified36.8
Taylor expanded around inf 17.0
Simplified17.0
rmApplied *-un-lft-identity17.0
Applied add-sqr-sqrt17.0
Applied times-frac17.0
Simplified17.0
Simplified12.7
rmApplied add-cube-cbrt12.7
Applied associate-*l*12.7
if 2.5553097889102982e+120 < t Initial program 53.8
Simplified53.8
Taylor expanded around inf 54.2
Simplified54.2
Taylor expanded around inf 2.7
Simplified2.7
Final simplification8.9
herbie shell --seed 2019322 +o rules:numerics
(FPCore (x l t)
:name "Toniolo and Linder, Equation (7)"
:precision binary64
(/ (* (sqrt 2) t) (sqrt (- (* (/ (+ x 1) (- x 1)) (+ (* l l) (* 2 (* t t)))) (* l l)))))