\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 -2.893044424140443963701519691942199270156 \cdot 10^{127}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \left(\frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \frac{t}{\sqrt{2} \cdot {x}^{2}}\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right) - t \cdot \sqrt{2}}\\
\mathbf{elif}\;t \le -2.995919227120961814839885101493571420347 \cdot 10^{-155}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) \cdot 2}}\\
\mathbf{elif}\;t \le -3.093321223031470806556114502029428533224 \cdot 10^{-189}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \left(\frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \frac{t}{\sqrt{2} \cdot {x}^{2}}\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right) - t \cdot \sqrt{2}}\\
\mathbf{elif}\;t \le -4.70293492113274424456901263060240659663 \cdot 10^{-259}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) \cdot 2}}\\
\mathbf{elif}\;t \le -3.973880744580357684887073160770704644204 \cdot 10^{-300}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(2 \cdot \left(\frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \frac{t}{\sqrt{2} \cdot {x}^{2}}\right) - 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right) - t \cdot \sqrt{2}}\\
\mathbf{elif}\;t \le 1.283850626874649528456778226273514369985 \cdot 10^{-253} \lor \neg \left(t \le 5.156014301754715816234983111960992171017 \cdot 10^{-183}\right) \land t \le 4.517101072782233046760218130420168379434 \cdot 10^{-119}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{4 \cdot \frac{{t}^{2}}{x} + \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) \cdot 2}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{2 \cdot \left(\frac{t}{\sqrt{2} \cdot {x}^{2}} + \frac{t}{\sqrt{2} \cdot x}\right) + \left(t \cdot \sqrt{2} - 2 \cdot \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}}\right)}\\
\end{array}double f(double x, double l, double t) {
double r52300 = 2.0;
double r52301 = sqrt(r52300);
double r52302 = t;
double r52303 = r52301 * r52302;
double r52304 = x;
double r52305 = 1.0;
double r52306 = r52304 + r52305;
double r52307 = r52304 - r52305;
double r52308 = r52306 / r52307;
double r52309 = l;
double r52310 = r52309 * r52309;
double r52311 = r52302 * r52302;
double r52312 = r52300 * r52311;
double r52313 = r52310 + r52312;
double r52314 = r52308 * r52313;
double r52315 = r52314 - r52310;
double r52316 = sqrt(r52315);
double r52317 = r52303 / r52316;
return r52317;
}
double f(double x, double l, double t) {
double r52318 = t;
double r52319 = -2.893044424140444e+127;
bool r52320 = r52318 <= r52319;
double r52321 = 2.0;
double r52322 = sqrt(r52321);
double r52323 = r52322 * r52318;
double r52324 = 3.0;
double r52325 = pow(r52322, r52324);
double r52326 = x;
double r52327 = 2.0;
double r52328 = pow(r52326, r52327);
double r52329 = r52325 * r52328;
double r52330 = r52318 / r52329;
double r52331 = r52322 * r52328;
double r52332 = r52318 / r52331;
double r52333 = r52330 - r52332;
double r52334 = r52321 * r52333;
double r52335 = r52322 * r52326;
double r52336 = r52318 / r52335;
double r52337 = r52321 * r52336;
double r52338 = r52334 - r52337;
double r52339 = r52318 * r52322;
double r52340 = r52338 - r52339;
double r52341 = r52323 / r52340;
double r52342 = -2.995919227120962e-155;
bool r52343 = r52318 <= r52342;
double r52344 = 4.0;
double r52345 = pow(r52318, r52327);
double r52346 = r52345 / r52326;
double r52347 = r52344 * r52346;
double r52348 = l;
double r52349 = r52326 / r52348;
double r52350 = r52348 / r52349;
double r52351 = r52318 * r52318;
double r52352 = r52350 + r52351;
double r52353 = r52352 * r52321;
double r52354 = r52347 + r52353;
double r52355 = sqrt(r52354);
double r52356 = r52323 / r52355;
double r52357 = -3.093321223031471e-189;
bool r52358 = r52318 <= r52357;
double r52359 = -4.702934921132744e-259;
bool r52360 = r52318 <= r52359;
double r52361 = -3.973880744580358e-300;
bool r52362 = r52318 <= r52361;
double r52363 = 1.2838506268746495e-253;
bool r52364 = r52318 <= r52363;
double r52365 = 5.156014301754716e-183;
bool r52366 = r52318 <= r52365;
double r52367 = !r52366;
double r52368 = 4.517101072782233e-119;
bool r52369 = r52318 <= r52368;
bool r52370 = r52367 && r52369;
bool r52371 = r52364 || r52370;
double r52372 = r52332 + r52336;
double r52373 = r52321 * r52372;
double r52374 = r52321 * r52330;
double r52375 = r52339 - r52374;
double r52376 = r52373 + r52375;
double r52377 = r52323 / r52376;
double r52378 = r52371 ? r52356 : r52377;
double r52379 = r52362 ? r52341 : r52378;
double r52380 = r52360 ? r52356 : r52379;
double r52381 = r52358 ? r52341 : r52380;
double r52382 = r52343 ? r52356 : r52381;
double r52383 = r52320 ? r52341 : r52382;
return r52383;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -2.893044424140444e+127 or -2.995919227120962e-155 < t < -3.093321223031471e-189 or -4.702934921132744e-259 < t < -3.973880744580358e-300Initial program 56.9
Taylor expanded around -inf 9.8
Simplified9.8
if -2.893044424140444e+127 < t < -2.995919227120962e-155 or -3.093321223031471e-189 < t < -4.702934921132744e-259 or -3.973880744580358e-300 < t < 1.2838506268746495e-253 or 5.156014301754716e-183 < t < 4.517101072782233e-119Initial program 36.3
Taylor expanded around inf 16.5
Simplified16.5
rmApplied sqr-pow16.5
Applied associate-/l*11.8
Simplified11.8
if 1.2838506268746495e-253 < t < 5.156014301754716e-183 or 4.517101072782233e-119 < t Initial program 41.2
Taylor expanded around inf 11.3
Simplified11.3
Final simplification11.1
herbie shell --seed 2019209
(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)))))