\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 -5.415525381702613 \cdot 10^{+62}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{2 \cdot \left(\frac{\frac{t}{2 \cdot \sqrt{2}}}{x \cdot x} - \frac{\frac{t}{\sqrt{2}}}{x \cdot x}\right) - \left(\sqrt{2} \cdot t + \frac{2 \cdot t}{\sqrt{2} \cdot x}\right)}\\
\mathbf{elif}\;t \le 3.4759257316157413 \cdot 10^{-284}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{2 \cdot \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) + 4 \cdot \frac{t \cdot t}{x}}}\\
\mathbf{elif}\;t \le 9.831366213789788 \cdot 10^{-187}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{2 \cdot t}{\sqrt{2} \cdot x} - \frac{2}{x \cdot x} \cdot \frac{t}{2 \cdot \sqrt{2}}\right) + \left(\frac{\frac{t}{\sqrt{2}}}{x \cdot x} \cdot 2 + \sqrt{2} \cdot t\right)}\\
\mathbf{elif}\;t \le 1.0888219445242733 \cdot 10^{+135}:\\
\;\;\;\;\frac{\left(t \cdot \sqrt[3]{\sqrt{2}}\right) \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right)}{\sqrt{2 \cdot \left(\frac{\ell}{\frac{x}{\ell}} + t \cdot t\right) + 4 \cdot \frac{t \cdot t}{x}}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\left(\frac{2 \cdot t}{\sqrt{2} \cdot x} - \frac{2}{x \cdot x} \cdot \frac{t}{2 \cdot \sqrt{2}}\right) + \left(\frac{\frac{t}{\sqrt{2}}}{x \cdot x} \cdot 2 + \sqrt{2} \cdot t\right)}\\
\end{array}double f(double x, double l, double t) {
double r559495 = 2.0;
double r559496 = sqrt(r559495);
double r559497 = t;
double r559498 = r559496 * r559497;
double r559499 = x;
double r559500 = 1.0;
double r559501 = r559499 + r559500;
double r559502 = r559499 - r559500;
double r559503 = r559501 / r559502;
double r559504 = l;
double r559505 = r559504 * r559504;
double r559506 = r559497 * r559497;
double r559507 = r559495 * r559506;
double r559508 = r559505 + r559507;
double r559509 = r559503 * r559508;
double r559510 = r559509 - r559505;
double r559511 = sqrt(r559510);
double r559512 = r559498 / r559511;
return r559512;
}
double f(double x, double l, double t) {
double r559513 = t;
double r559514 = -5.415525381702613e+62;
bool r559515 = r559513 <= r559514;
double r559516 = 2.0;
double r559517 = sqrt(r559516);
double r559518 = r559517 * r559513;
double r559519 = r559516 * r559517;
double r559520 = r559513 / r559519;
double r559521 = x;
double r559522 = r559521 * r559521;
double r559523 = r559520 / r559522;
double r559524 = r559513 / r559517;
double r559525 = r559524 / r559522;
double r559526 = r559523 - r559525;
double r559527 = r559516 * r559526;
double r559528 = r559516 * r559513;
double r559529 = r559517 * r559521;
double r559530 = r559528 / r559529;
double r559531 = r559518 + r559530;
double r559532 = r559527 - r559531;
double r559533 = r559518 / r559532;
double r559534 = 3.4759257316157413e-284;
bool r559535 = r559513 <= r559534;
double r559536 = l;
double r559537 = r559521 / r559536;
double r559538 = r559536 / r559537;
double r559539 = r559513 * r559513;
double r559540 = r559538 + r559539;
double r559541 = r559516 * r559540;
double r559542 = 4.0;
double r559543 = r559539 / r559521;
double r559544 = r559542 * r559543;
double r559545 = r559541 + r559544;
double r559546 = sqrt(r559545);
double r559547 = r559518 / r559546;
double r559548 = 9.831366213789788e-187;
bool r559549 = r559513 <= r559548;
double r559550 = r559516 / r559522;
double r559551 = r559550 * r559520;
double r559552 = r559530 - r559551;
double r559553 = r559525 * r559516;
double r559554 = r559553 + r559518;
double r559555 = r559552 + r559554;
double r559556 = r559518 / r559555;
double r559557 = 1.0888219445242733e+135;
bool r559558 = r559513 <= r559557;
double r559559 = cbrt(r559517);
double r559560 = r559513 * r559559;
double r559561 = r559559 * r559559;
double r559562 = r559560 * r559561;
double r559563 = r559562 / r559546;
double r559564 = r559558 ? r559563 : r559556;
double r559565 = r559549 ? r559556 : r559564;
double r559566 = r559535 ? r559547 : r559565;
double r559567 = r559515 ? r559533 : r559566;
return r559567;
}



Bits error versus x



Bits error versus l



Bits error versus t
Results
if t < -5.415525381702613e+62Initial program 45.3
Taylor expanded around -inf 3.6
Simplified3.6
if -5.415525381702613e+62 < t < 3.4759257316157413e-284Initial program 39.4
Taylor expanded around inf 17.7
Simplified17.7
rmApplied associate-/l*14.9
if 3.4759257316157413e-284 < t < 9.831366213789788e-187 or 1.0888219445242733e+135 < t Initial program 57.9
Taylor expanded around inf 10.7
Simplified10.8
if 9.831366213789788e-187 < t < 1.0888219445242733e+135Initial program 26.0
Taylor expanded around inf 11.7
Simplified11.7
rmApplied associate-/l*6.4
rmApplied add-cube-cbrt6.4
Applied associate-*l*6.4
Final simplification9.1
herbie shell --seed 2019153
(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)))))