double f(double n, double U, double t, double l, double Om, double U_) {
double r37506318 = 2.0;
double r37506319 = n;
double r37506320 = r37506318 * r37506319;
double r37506321 = U;
double r37506322 = r37506320 * r37506321;
double r37506323 = t;
double r37506324 = l;
double r37506325 = r37506324 * r37506324;
double r37506326 = Om;
double r37506327 = r37506325 / r37506326;
double r37506328 = r37506318 * r37506327;
double r37506329 = r37506323 - r37506328;
double r37506330 = r37506324 / r37506326;
double r37506331 = pow(r37506330, r37506318);
double r37506332 = r37506319 * r37506331;
double r37506333 = U_;
double r37506334 = r37506321 - r37506333;
double r37506335 = r37506332 * r37506334;
double r37506336 = r37506329 - r37506335;
double r37506337 = r37506322 * r37506336;
double r37506338 = sqrt(r37506337);
return r37506338;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r37506339 = n;
double r37506340 = 6.8407606413564e-311;
bool r37506341 = r37506339 <= r37506340;
double r37506342 = t;
double r37506343 = l;
double r37506344 = Om;
double r37506345 = r37506344 / r37506343;
double r37506346 = r37506343 / r37506345;
double r37506347 = 2.0;
double r37506348 = r37506346 * r37506347;
double r37506349 = r37506342 - r37506348;
double r37506350 = U;
double r37506351 = U_;
double r37506352 = r37506350 - r37506351;
double r37506353 = cbrt(r37506343);
double r37506354 = cbrt(r37506344);
double r37506355 = r37506353 / r37506354;
double r37506356 = r37506355 * r37506355;
double r37506357 = cbrt(r37506356);
double r37506358 = r37506357 * r37506357;
double r37506359 = r37506353 * r37506353;
double r37506360 = r37506354 * r37506354;
double r37506361 = r37506359 / r37506360;
double r37506362 = cbrt(r37506361);
double r37506363 = r37506362 * r37506362;
double r37506364 = pow(r37506363, r37506347);
double r37506365 = r37506339 * r37506364;
double r37506366 = r37506358 * r37506365;
double r37506367 = r37506356 * r37506366;
double r37506368 = r37506352 * r37506367;
double r37506369 = r37506349 - r37506368;
double r37506370 = r37506369 * r37506350;
double r37506371 = r37506347 * r37506339;
double r37506372 = r37506370 * r37506371;
double r37506373 = sqrt(r37506372);
double r37506374 = 1.8321283325720638e+170;
bool r37506375 = r37506339 <= r37506374;
double r37506376 = sqrt(r37506371);
double r37506377 = pow(r37506361, r37506347);
double r37506378 = r37506377 * r37506339;
double r37506379 = r37506356 * r37506378;
double r37506380 = r37506379 * r37506352;
double r37506381 = r37506349 - r37506380;
double r37506382 = r37506350 * r37506381;
double r37506383 = sqrt(r37506382);
double r37506384 = r37506376 * r37506383;
double r37506385 = 7.521786847164409e+265;
bool r37506386 = r37506339 <= r37506385;
double r37506387 = r37506343 * r37506343;
double r37506388 = r37506387 / r37506344;
double r37506389 = r37506388 * r37506347;
double r37506390 = r37506389 - r37506389;
double r37506391 = r37506343 / r37506344;
double r37506392 = r37506352 * r37506391;
double r37506393 = r37506339 * r37506391;
double r37506394 = r37506392 * r37506393;
double r37506395 = r37506390 - r37506394;
double r37506396 = r37506395 * r37506371;
double r37506397 = r37506350 * r37506396;
double r37506398 = r37506371 * r37506350;
double r37506399 = cbrt(r37506342);
double r37506400 = r37506399 * r37506399;
double r37506401 = -2.0;
double r37506402 = r37506388 * r37506401;
double r37506403 = fma(r37506400, r37506399, r37506402);
double r37506404 = r37506398 * r37506403;
double r37506405 = r37506397 + r37506404;
double r37506406 = sqrt(r37506405);
double r37506407 = r37506386 ? r37506406 : r37506384;
double r37506408 = r37506375 ? r37506384 : r37506407;
double r37506409 = r37506341 ? r37506373 : r37506408;
return r37506409;
}
\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*))))))