\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 -4.072364829113804129211154117041985310779 \cdot 10^{83}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\mathsf{fma}\left(2, \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}}, -\mathsf{fma}\left(2, \frac{t}{\sqrt{2} \cdot {x}^{2}}, \mathsf{fma}\left(2, \frac{t}{\sqrt{2} \cdot x}, t \cdot \sqrt{2}\right)\right)\right)}\\
\mathbf{elif}\;t \le 5.479403094569755226462617097079808517203 \cdot 10^{-269}:\\
\;\;\;\;\frac{\sqrt{1} \cdot \left(\sqrt{2} \cdot t\right)}{\sqrt{\mathsf{fma}\left(2, {t}^{2}, \mathsf{fma}\left(2, \ell \cdot \frac{\ell}{x}, 4 \cdot \frac{{t}^{2}}{x}\right)\right)}}\\
\mathbf{elif}\;t \le 1.990752607981019582737867707393712406717 \cdot 10^{-152}:\\
\;\;\;\;\frac{\sqrt{1} \cdot \left(\sqrt{2} \cdot t\right)}{\mathsf{fma}\left(t, \sqrt{2}, 2 \cdot \frac{t}{\sqrt{2} \cdot x}\right)}\\
\mathbf{elif}\;t \le 1.559783904006557738394272103046695071194 \cdot 10^{140}:\\
\;\;\;\;\frac{\sqrt{\sqrt{2}} \cdot \left(\sqrt{\sqrt{2}} \cdot t\right)}{\sqrt{\mathsf{fma}\left(2, {t}^{2}, \mathsf{fma}\left(2, \ell \cdot \frac{\ell}{x}, 4 \cdot \frac{{t}^{2}}{x}\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{\sqrt{2} \cdot t}{\mathsf{fma}\left(2, \frac{t}{\sqrt{2} \cdot {x}^{2}}, \mathsf{fma}\left(2, \frac{t}{\sqrt{2} \cdot x}, t \cdot \sqrt{2}\right) - 2 \cdot \frac{t}{{\left(\sqrt{2}\right)}^{3} \cdot {x}^{2}}\right)}\\
\end{array}double f(double x, double l, double t) {
double r37211 = 2.0;
double r37212 = sqrt(r37211);
double r37213 = t;
double r37214 = r37212 * r37213;
double r37215 = x;
double r37216 = 1.0;
double r37217 = r37215 + r37216;
double r37218 = r37215 - r37216;
double r37219 = r37217 / r37218;
double r37220 = l;
double r37221 = r37220 * r37220;
double r37222 = r37213 * r37213;
double r37223 = r37211 * r37222;
double r37224 = r37221 + r37223;
double r37225 = r37219 * r37224;
double r37226 = r37225 - r37221;
double r37227 = sqrt(r37226);
double r37228 = r37214 / r37227;
return r37228;
}
double f(double x, double l, double t) {
double r37229 = t;
double r37230 = -4.072364829113804e+83;
bool r37231 = r37229 <= r37230;
double r37232 = 2.0;
double r37233 = sqrt(r37232);
double r37234 = r37233 * r37229;
double r37235 = 3.0;
double r37236 = pow(r37233, r37235);
double r37237 = x;
double r37238 = 2.0;
double r37239 = pow(r37237, r37238);
double r37240 = r37236 * r37239;
double r37241 = r37229 / r37240;
double r37242 = r37233 * r37239;
double r37243 = r37229 / r37242;
double r37244 = r37233 * r37237;
double r37245 = r37229 / r37244;
double r37246 = r37229 * r37233;
double r37247 = fma(r37232, r37245, r37246);
double r37248 = fma(r37232, r37243, r37247);
double r37249 = -r37248;
double r37250 = fma(r37232, r37241, r37249);
double r37251 = r37234 / r37250;
double r37252 = 5.479403094569755e-269;
bool r37253 = r37229 <= r37252;
double r37254 = 1.0;
double r37255 = sqrt(r37254);
double r37256 = r37255 * r37234;
double r37257 = pow(r37229, r37238);
double r37258 = l;
double r37259 = r37258 / r37237;
double r37260 = r37258 * r37259;
double r37261 = 4.0;
double r37262 = r37257 / r37237;
double r37263 = r37261 * r37262;
double r37264 = fma(r37232, r37260, r37263);
double r37265 = fma(r37232, r37257, r37264);
double r37266 = sqrt(r37265);
double r37267 = r37256 / r37266;
double r37268 = 1.9907526079810196e-152;
bool r37269 = r37229 <= r37268;
double r37270 = r37232 * r37245;
double r37271 = fma(r37229, r37233, r37270);
double r37272 = r37256 / r37271;
double r37273 = 1.5597839040065577e+140;
bool r37274 = r37229 <= r37273;
double r37275 = sqrt(r37233);
double r37276 = r37275 * r37229;
double r37277 = r37275 * r37276;
double r37278 = r37277 / r37266;
double r37279 = r37232 * r37241;
double r37280 = r37247 - r37279;
double r37281 = fma(r37232, r37243, r37280);
double r37282 = r37234 / r37281;
double r37283 = r37274 ? r37278 : r37282;
double r37284 = r37269 ? r37272 : r37283;
double r37285 = r37253 ? r37267 : r37284;
double r37286 = r37231 ? r37251 : r37285;
return r37286;
}



Bits error versus x



Bits error versus l



Bits error versus t
if t < -4.072364829113804e+83Initial program 48.4
Taylor expanded around -inf 3.0
Simplified3.0
if -4.072364829113804e+83 < t < 5.479403094569755e-269Initial program 40.2
Taylor expanded around inf 17.8
Simplified17.8
rmApplied *-un-lft-identity17.8
Applied add-sqr-sqrt41.0
Applied unpow-prod-down41.0
Applied times-frac39.3
Simplified39.3
Simplified14.4
rmApplied *-un-lft-identity14.4
Applied sqrt-prod14.4
Applied associate-*l*14.4
if 5.479403094569755e-269 < t < 1.9907526079810196e-152Initial program 60.9
Taylor expanded around inf 32.9
Simplified32.9
rmApplied *-un-lft-identity32.9
Applied add-sqr-sqrt49.3
Applied unpow-prod-down49.3
Applied times-frac47.7
Simplified47.7
Simplified30.1
rmApplied *-un-lft-identity30.1
Applied sqrt-prod30.1
Applied associate-*l*30.1
Taylor expanded around inf 35.6
Simplified35.6
if 1.9907526079810196e-152 < t < 1.5597839040065577e+140Initial program 24.7
Taylor expanded around inf 10.1
Simplified10.1
rmApplied *-un-lft-identity10.1
Applied add-sqr-sqrt37.2
Applied unpow-prod-down37.2
Applied times-frac34.7
Simplified34.6
Simplified5.1
rmApplied add-sqr-sqrt5.1
Applied sqrt-prod5.2
Applied associate-*l*5.1
if 1.5597839040065577e+140 < t Initial program 58.7
Taylor expanded around inf 1.9
Simplified1.9
Final simplification9.3
herbie shell --seed 2019362 +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)))))