\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.2121121680339957 \cdot 10^{+126}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\frac{1}{\sqrt{2}} \cdot \frac{t}{x \cdot x} - (t \cdot \left(\sqrt{2}\right) + \left(\frac{2}{\sqrt{2}} \cdot \left(\frac{t}{x} + \frac{t}{x \cdot x}\right)\right))_*}\\
\mathbf{elif}\;t \le 1.853799998927771 \cdot 10^{+116}:\\
\;\;\;\;\frac{\left(t \cdot \left(\sqrt[3]{\sqrt{2}} \cdot \sqrt[3]{\sqrt{2}}\right)\right) \cdot \sqrt[3]{\sqrt{2}}}{\sqrt{(\left((\left(\frac{\ell}{x}\right) \cdot \ell + \left(t \cdot t\right))_*\right) \cdot 2 + \left(\frac{4 \cdot \left(t \cdot t\right)}{x}\right))_*}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\frac{\frac{2}{x}}{x} \cdot \left(\frac{t}{\sqrt{2}} - \frac{\frac{t}{\sqrt{2}}}{2}\right) + (\left(\frac{t}{\sqrt{2} \cdot x}\right) \cdot 2 + \left(\sqrt{2} \cdot t\right))_*}\\
\end{array}double f(double x, double l, double t) {
double r1568128 = 2.0;
double r1568129 = sqrt(r1568128);
double r1568130 = t;
double r1568131 = r1568129 * r1568130;
double r1568132 = x;
double r1568133 = 1.0;
double r1568134 = r1568132 + r1568133;
double r1568135 = r1568132 - r1568133;
double r1568136 = r1568134 / r1568135;
double r1568137 = l;
double r1568138 = r1568137 * r1568137;
double r1568139 = r1568130 * r1568130;
double r1568140 = r1568128 * r1568139;
double r1568141 = r1568138 + r1568140;
double r1568142 = r1568136 * r1568141;
double r1568143 = r1568142 - r1568138;
double r1568144 = sqrt(r1568143);
double r1568145 = r1568131 / r1568144;
return r1568145;
}
double f(double x, double l, double t) {
double r1568146 = t;
double r1568147 = -2.2121121680339957e+126;
bool r1568148 = r1568146 <= r1568147;
double r1568149 = 2.0;
double r1568150 = sqrt(r1568149);
double r1568151 = r1568150 * r1568146;
double r1568152 = 1.0;
double r1568153 = r1568152 / r1568150;
double r1568154 = x;
double r1568155 = r1568154 * r1568154;
double r1568156 = r1568146 / r1568155;
double r1568157 = r1568153 * r1568156;
double r1568158 = r1568149 / r1568150;
double r1568159 = r1568146 / r1568154;
double r1568160 = r1568159 + r1568156;
double r1568161 = r1568158 * r1568160;
double r1568162 = fma(r1568146, r1568150, r1568161);
double r1568163 = r1568157 - r1568162;
double r1568164 = r1568151 / r1568163;
double r1568165 = 1.853799998927771e+116;
bool r1568166 = r1568146 <= r1568165;
double r1568167 = cbrt(r1568150);
double r1568168 = r1568167 * r1568167;
double r1568169 = r1568146 * r1568168;
double r1568170 = r1568169 * r1568167;
double r1568171 = l;
double r1568172 = r1568171 / r1568154;
double r1568173 = r1568146 * r1568146;
double r1568174 = fma(r1568172, r1568171, r1568173);
double r1568175 = 4.0;
double r1568176 = r1568175 * r1568173;
double r1568177 = r1568176 / r1568154;
double r1568178 = fma(r1568174, r1568149, r1568177);
double r1568179 = sqrt(r1568178);
double r1568180 = r1568170 / r1568179;
double r1568181 = r1568149 / r1568154;
double r1568182 = r1568181 / r1568154;
double r1568183 = r1568146 / r1568150;
double r1568184 = r1568183 / r1568149;
double r1568185 = r1568183 - r1568184;
double r1568186 = r1568182 * r1568185;
double r1568187 = r1568150 * r1568154;
double r1568188 = r1568146 / r1568187;
double r1568189 = fma(r1568188, r1568149, r1568151);
double r1568190 = r1568186 + r1568189;
double r1568191 = r1568151 / r1568190;
double r1568192 = r1568166 ? r1568180 : r1568191;
double r1568193 = r1568148 ? r1568164 : r1568192;
return r1568193;
}



Bits error versus x



Bits error versus l



Bits error versus t
if t < -2.2121121680339957e+126Initial program 55.9
Taylor expanded around -inf 2.3
Simplified2.3
if -2.2121121680339957e+126 < t < 1.853799998927771e+116Initial program 35.5
Taylor expanded around -inf 16.7
Simplified12.4
rmApplied *-commutative12.4
rmApplied add-cube-cbrt12.4
Applied associate-*r*12.4
if 1.853799998927771e+116 < t Initial program 53.0
Taylor expanded around inf 2.4
Simplified2.4
Final simplification8.7
herbie shell --seed 2019104 +o rules:numerics
(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)))))