double f(double n, double U, double t, double l, double Om, double U_) {
double r38121442 = 2.0;
double r38121443 = n;
double r38121444 = r38121442 * r38121443;
double r38121445 = U;
double r38121446 = r38121444 * r38121445;
double r38121447 = t;
double r38121448 = l;
double r38121449 = r38121448 * r38121448;
double r38121450 = Om;
double r38121451 = r38121449 / r38121450;
double r38121452 = r38121442 * r38121451;
double r38121453 = r38121447 - r38121452;
double r38121454 = r38121448 / r38121450;
double r38121455 = pow(r38121454, r38121442);
double r38121456 = r38121443 * r38121455;
double r38121457 = U_;
double r38121458 = r38121445 - r38121457;
double r38121459 = r38121456 * r38121458;
double r38121460 = r38121453 - r38121459;
double r38121461 = r38121446 * r38121460;
double r38121462 = sqrt(r38121461);
return r38121462;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r38121463 = n;
double r38121464 = 6.8407606413564e-311;
bool r38121465 = r38121463 <= r38121464;
double r38121466 = t;
double r38121467 = l;
double r38121468 = Om;
double r38121469 = r38121468 / r38121467;
double r38121470 = r38121467 / r38121469;
double r38121471 = 2.0;
double r38121472 = r38121470 * r38121471;
double r38121473 = r38121466 - r38121472;
double r38121474 = U;
double r38121475 = U_;
double r38121476 = r38121474 - r38121475;
double r38121477 = cbrt(r38121467);
double r38121478 = cbrt(r38121468);
double r38121479 = r38121477 / r38121478;
double r38121480 = r38121479 * r38121479;
double r38121481 = cbrt(r38121480);
double r38121482 = r38121481 * r38121481;
double r38121483 = r38121477 * r38121477;
double r38121484 = r38121478 * r38121478;
double r38121485 = r38121483 / r38121484;
double r38121486 = cbrt(r38121485);
double r38121487 = r38121486 * r38121486;
double r38121488 = pow(r38121487, r38121471);
double r38121489 = r38121463 * r38121488;
double r38121490 = r38121482 * r38121489;
double r38121491 = r38121480 * r38121490;
double r38121492 = r38121476 * r38121491;
double r38121493 = r38121473 - r38121492;
double r38121494 = r38121493 * r38121474;
double r38121495 = r38121471 * r38121463;
double r38121496 = r38121494 * r38121495;
double r38121497 = sqrt(r38121496);
double r38121498 = 1.8321283325720638e+170;
bool r38121499 = r38121463 <= r38121498;
double r38121500 = sqrt(r38121495);
double r38121501 = pow(r38121485, r38121471);
double r38121502 = r38121501 * r38121463;
double r38121503 = r38121480 * r38121502;
double r38121504 = r38121503 * r38121476;
double r38121505 = r38121473 - r38121504;
double r38121506 = r38121474 * r38121505;
double r38121507 = sqrt(r38121506);
double r38121508 = r38121500 * r38121507;
double r38121509 = 7.521786847164409e+265;
bool r38121510 = r38121463 <= r38121509;
double r38121511 = r38121467 * r38121467;
double r38121512 = r38121511 / r38121468;
double r38121513 = r38121512 * r38121471;
double r38121514 = r38121513 - r38121513;
double r38121515 = r38121467 / r38121468;
double r38121516 = r38121476 * r38121515;
double r38121517 = r38121463 * r38121515;
double r38121518 = r38121516 * r38121517;
double r38121519 = r38121514 - r38121518;
double r38121520 = r38121519 * r38121495;
double r38121521 = r38121474 * r38121520;
double r38121522 = r38121495 * r38121474;
double r38121523 = cbrt(r38121466);
double r38121524 = r38121523 * r38121523;
double r38121525 = -2.0;
double r38121526 = r38121512 * r38121525;
double r38121527 = fma(r38121524, r38121523, r38121526);
double r38121528 = r38121522 * r38121527;
double r38121529 = r38121521 + r38121528;
double r38121530 = sqrt(r38121529);
double r38121531 = r38121510 ? r38121530 : r38121508;
double r38121532 = r38121499 ? r38121508 : r38121531;
double r38121533 = r38121465 ? r38121497 : r38121532;
return r38121533;
}
\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{Om}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\begin{array}{l}
\mathbf{if}\;n \le 6.8407606413564 \cdot 10^{-311}:\\
\;\;\;\;\sqrt{\left(\left(\left(t - \frac{\ell}{\frac{Om}{\ell}} \cdot 2\right) - \left(U - U*\right) \cdot \left(\left(\frac{\sqrt[3]{\ell}}{\sqrt[3]{Om}} \cdot \frac{\sqrt[3]{\ell}}{\sqrt[3]{Om}}\right) \cdot \left(\left(\sqrt[3]{\frac{\sqrt[3]{\ell}}{\sqrt[3]{Om}} \cdot \frac{\sqrt[3]{\ell}}{\sqrt[3]{Om}}} \cdot \sqrt[3]{\frac{\sqrt[3]{\ell}}{\sqrt[3]{Om}} \cdot \frac{\sqrt[3]{\ell}}{\sqrt[3]{Om}}}\right) \cdot \left(n \cdot {\left(\sqrt[3]{\frac{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}} \cdot \sqrt[3]{\frac{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}}\right)}^{2}\right)\right)\right)\right) \cdot U\right) \cdot \left(2 \cdot n\right)}\\
\mathbf{elif}\;n \le 1.8321283325720638 \cdot 10^{+170}:\\
\;\;\;\;\sqrt{2 \cdot n} \cdot \sqrt{U \cdot \left(\left(t - \frac{\ell}{\frac{Om}{\ell}} \cdot 2\right) - \left(\left(\frac{\sqrt[3]{\ell}}{\sqrt[3]{Om}} \cdot \frac{\sqrt[3]{\ell}}{\sqrt[3]{Om}}\right) \cdot \left({\left(\frac{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}\right)}^{2} \cdot n\right)\right) \cdot \left(U - U*\right)\right)}\\
\mathbf{elif}\;n \le 7.521786847164409 \cdot 10^{+265}:\\
\;\;\;\;\sqrt{U \cdot \left(\left(\left(\frac{\ell \cdot \ell}{Om} \cdot 2 - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(\left(U - U*\right) \cdot \frac{\ell}{Om}\right) \cdot \left(n \cdot \frac{\ell}{Om}\right)\right) \cdot \left(2 \cdot n\right)\right) + \left(\left(2 \cdot n\right) \cdot U\right) \cdot (\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \left(\sqrt[3]{t}\right) + \left(\frac{\ell \cdot \ell}{Om} \cdot -2\right))_*}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 \cdot n} \cdot \sqrt{U \cdot \left(\left(t - \frac{\ell}{\frac{Om}{\ell}} \cdot 2\right) - \left(\left(\frac{\sqrt[3]{\ell}}{\sqrt[3]{Om}} \cdot \frac{\sqrt[3]{\ell}}{\sqrt[3]{Om}}\right) \cdot \left({\left(\frac{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}\right)}^{2} \cdot n\right)\right) \cdot \left(U - U*\right)\right)}\\
\end{array}


Bits error versus n



Bits error versus U



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus U*
if n < 6.8407606413564e-311Initial program 33.4
rmApplied associate-/l*30.7
rmApplied add-cube-cbrt30.8
Applied add-cube-cbrt30.8
Applied times-frac30.8
Applied unpow-prod-down30.8
Applied associate-*r*30.0
Simplified30.0
rmApplied associate-*l*29.8
rmApplied add-cube-cbrt29.8
Applied unpow-prod-down29.8
Applied associate-*r*29.7
Simplified29.7
if 6.8407606413564e-311 < n < 1.8321283325720638e+170 or 7.521786847164409e+265 < n Initial program 33.9
rmApplied associate-/l*30.7
rmApplied add-cube-cbrt30.8
Applied add-cube-cbrt30.8
Applied times-frac30.8
Applied unpow-prod-down30.8
Applied associate-*r*30.1
Simplified30.1
rmApplied associate-*l*29.7
rmApplied sqrt-prod23.4
if 1.8321283325720638e+170 < n < 7.521786847164409e+265Initial program 36.6
rmApplied add-cube-cbrt36.9
Applied prod-diff36.9
Applied associate--l+36.9
Applied distribute-lft-in36.9
Simplified37.5
Final simplification27.3
herbie shell --seed 2019102 +o rules:numerics
(FPCore (n U t l Om U*)
:name "Toniolo and Linder, Equation (13)"
(sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))))