\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 -2404699594045954599540100621504872448:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{2 \cdot \left(\frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \frac{t}{\sqrt{2} \cdot x}\right) - t \cdot \sqrt{2}}\\
\mathbf{elif}\;t \le -6.492099203484521869436081722227008598355 \cdot 10^{-157}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\sqrt{\mathsf{fma}\left(2, \mathsf{fma}\left(t, t, \frac{\left|\ell\right|}{\sqrt[3]{x} \cdot \sqrt[3]{x}} \cdot \frac{\left|\ell\right|}{\sqrt[3]{x}}\right), 4 \cdot \frac{{t}^{2}}{x}\right)}}\\
\mathbf{elif}\;t \le -7.231141217156239276359457821248495233406 \cdot 10^{-225}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{2 \cdot \left(\frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}} - \frac{t}{\sqrt{2} \cdot x}\right) - t \cdot \sqrt{2}}\\
\mathbf{elif}\;t \le 1.53909661729405029639481098041358476011 \cdot 10^{-299} \lor \neg \left(t \le 1.464783658109499293496367809888962941264 \cdot 10^{-233} \lor \neg \left(t \le 7.020103372014630694165473293132646183048 \cdot 10^{147}\right)\right):\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\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 r26632 = 2.0;
double r26633 = sqrt(r26632);
double r26634 = t;
double r26635 = r26633 * r26634;
double r26636 = x;
double r26637 = 1.0;
double r26638 = r26636 + r26637;
double r26639 = r26636 - r26637;
double r26640 = r26638 / r26639;
double r26641 = l;
double r26642 = r26641 * r26641;
double r26643 = r26634 * r26634;
double r26644 = r26632 * r26643;
double r26645 = r26642 + r26644;
double r26646 = r26640 * r26645;
double r26647 = r26646 - r26642;
double r26648 = sqrt(r26647);
double r26649 = r26635 / r26648;
return r26649;
}
double f(double x, double l, double t) {
double r26650 = t;
double r26651 = -2.4046995940459546e+36;
bool r26652 = r26650 <= r26651;
double r26653 = 2.0;
double r26654 = sqrt(r26653);
double r26655 = r26654 * r26650;
double r26656 = 3.0;
double r26657 = pow(r26654, r26656);
double r26658 = x;
double r26659 = 2.0;
double r26660 = pow(r26658, r26659);
double r26661 = r26657 * r26660;
double r26662 = r26650 / r26661;
double r26663 = r26654 * r26658;
double r26664 = r26650 / r26663;
double r26665 = r26662 - r26664;
double r26666 = r26653 * r26665;
double r26667 = r26650 * r26654;
double r26668 = r26666 - r26667;
double r26669 = r26655 / r26668;
double r26670 = -6.492099203484522e-157;
bool r26671 = r26650 <= r26670;
double r26672 = l;
double r26673 = fabs(r26672);
double r26674 = cbrt(r26658);
double r26675 = r26674 * r26674;
double r26676 = r26673 / r26675;
double r26677 = r26673 / r26674;
double r26678 = r26676 * r26677;
double r26679 = fma(r26650, r26650, r26678);
double r26680 = 4.0;
double r26681 = pow(r26650, r26659);
double r26682 = r26681 / r26658;
double r26683 = r26680 * r26682;
double r26684 = fma(r26653, r26679, r26683);
double r26685 = sqrt(r26684);
double r26686 = r26655 / r26685;
double r26687 = -7.231141217156239e-225;
bool r26688 = r26650 <= r26687;
double r26689 = 1.5390966172940503e-299;
bool r26690 = r26650 <= r26689;
double r26691 = 1.4647836581094993e-233;
bool r26692 = r26650 <= r26691;
double r26693 = 7.02010337201463e+147;
bool r26694 = r26650 <= r26693;
double r26695 = !r26694;
bool r26696 = r26692 || r26695;
double r26697 = !r26696;
bool r26698 = r26690 || r26697;
double r26699 = r26673 / r26658;
double r26700 = r26673 * r26699;
double r26701 = fma(r26650, r26650, r26700);
double r26702 = fma(r26653, r26701, r26683);
double r26703 = sqrt(r26702);
double r26704 = r26655 / r26703;
double r26705 = r26653 * r26664;
double r26706 = fma(r26650, r26654, r26705);
double r26707 = r26655 / r26706;
double r26708 = r26698 ? r26704 : r26707;
double r26709 = r26688 ? r26669 : r26708;
double r26710 = r26671 ? r26686 : r26709;
double r26711 = r26652 ? r26669 : r26710;
return r26711;
}



Bits error versus x



Bits error versus l



Bits error versus t
if t < -2.4046995940459546e+36 or -6.492099203484522e-157 < t < -7.231141217156239e-225Initial program 46.4
Simplified46.4
Taylor expanded around inf 40.8
Simplified40.8
rmApplied *-un-lft-identity40.8
Applied add-sqr-sqrt40.8
Applied times-frac40.8
Simplified40.8
Simplified38.1
Taylor expanded around -inf 9.0
Simplified9.0
if -2.4046995940459546e+36 < t < -6.492099203484522e-157Initial program 29.4
Simplified29.4
Taylor expanded around inf 9.5
Simplified9.5
rmApplied add-cube-cbrt9.5
Applied add-sqr-sqrt9.5
Applied times-frac9.6
Simplified9.6
Simplified5.0
if -7.231141217156239e-225 < t < 1.5390966172940503e-299 or 1.4647836581094993e-233 < t < 7.02010337201463e+147Initial program 35.8
Simplified35.8
Taylor expanded around inf 17.6
Simplified17.6
rmApplied *-un-lft-identity17.6
Applied add-sqr-sqrt17.6
Applied times-frac17.6
Simplified17.6
Simplified13.4
if 1.5390966172940503e-299 < t < 1.4647836581094993e-233 or 7.02010337201463e+147 < t Initial program 60.9
Simplified60.9
Taylor expanded around inf 54.5
Simplified54.5
Taylor expanded around inf 10.5
Simplified10.5
Final simplification10.2
herbie shell --seed 2019350 +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)))))