\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 -6.377624199137871 \cdot 10^{+80}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{-\left(2 \cdot \frac{t}{x \cdot \sqrt{2}} + \sqrt{2} \cdot t\right)}\\
\mathbf{elif}\;t \le 3.3304656260583313 \cdot 10^{+124}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\frac{t \cdot t}{x} \cdot 4 + 2 \cdot \left(\frac{\ell}{\sqrt[3]{x}} \cdot \frac{\frac{\ell}{\sqrt[3]{x}}}{\sqrt[3]{x}} + t \cdot t\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2} \cdot t + \frac{2}{x} \cdot \frac{t}{\sqrt{2}}}\\
\end{array}double f(double x, double l, double t) {
double r628287 = 2.0;
double r628288 = sqrt(r628287);
double r628289 = t;
double r628290 = r628288 * r628289;
double r628291 = x;
double r628292 = 1.0;
double r628293 = r628291 + r628292;
double r628294 = r628291 - r628292;
double r628295 = r628293 / r628294;
double r628296 = l;
double r628297 = r628296 * r628296;
double r628298 = r628289 * r628289;
double r628299 = r628287 * r628298;
double r628300 = r628297 + r628299;
double r628301 = r628295 * r628300;
double r628302 = r628301 - r628297;
double r628303 = sqrt(r628302);
double r628304 = r628290 / r628303;
return r628304;
}
double f(double x, double l, double t) {
double r628305 = t;
double r628306 = -6.377624199137871e+80;
bool r628307 = r628305 <= r628306;
double r628308 = 2.0;
double r628309 = sqrt(r628308);
double r628310 = r628309 * r628305;
double r628311 = x;
double r628312 = r628311 * r628309;
double r628313 = r628305 / r628312;
double r628314 = r628308 * r628313;
double r628315 = r628314 + r628310;
double r628316 = -r628315;
double r628317 = r628310 / r628316;
double r628318 = 3.3304656260583313e+124;
bool r628319 = r628305 <= r628318;
double r628320 = r628305 * r628305;
double r628321 = r628320 / r628311;
double r628322 = 4.0;
double r628323 = r628321 * r628322;
double r628324 = l;
double r628325 = cbrt(r628311);
double r628326 = r628324 / r628325;
double r628327 = r628326 / r628325;
double r628328 = r628326 * r628327;
double r628329 = r628328 + r628320;
double r628330 = r628308 * r628329;
double r628331 = r628323 + r628330;
double r628332 = sqrt(r628331);
double r628333 = r628310 / r628332;
double r628334 = r628308 / r628311;
double r628335 = r628305 / r628309;
double r628336 = r628334 * r628335;
double r628337 = r628310 + r628336;
double r628338 = r628310 / r628337;
double r628339 = r628319 ? r628333 : r628338;
double r628340 = r628307 ? r628317 : r628339;
return r628340;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -6.377624199137871e+80Initial program 48.1
Taylor expanded around inf 47.9
Simplified47.9
rmApplied *-un-lft-identity47.9
Applied times-frac45.9
Simplified45.9
Taylor expanded around -inf 3.0
if -6.377624199137871e+80 < t < 3.3304656260583313e+124Initial program 37.5
Taylor expanded around inf 17.3
Simplified17.3
rmApplied add-cube-cbrt17.4
Applied times-frac13.2
Simplified13.2
if 3.3304656260583313e+124 < t Initial program 54.3
Taylor expanded around inf 54.2
Simplified54.2
rmApplied add-cube-cbrt54.2
Applied times-frac53.2
Simplified53.2
Taylor expanded around inf 2.5
Simplified2.5
Final simplification9.1
herbie shell --seed 2019152
(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)))))