\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}\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \le 0.0:\\
\;\;\;\;\left(\left|\sqrt[3]{\sqrt[3]{U}}\right| \cdot \sqrt{\sqrt[3]{\sqrt[3]{U}} \cdot \left(t \cdot n - \frac{\ell}{\frac{Om}{n}} \cdot \left(2 \cdot \ell - \left(U* - U\right) \cdot \frac{\ell}{\frac{Om}{n}}\right)\right)}\right) \cdot \sqrt{2 \cdot \left(\sqrt[3]{U} \cdot \sqrt[3]{U}\right)}\\
\mathbf{elif}\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \le 3.808352790811895 \cdot 10^{+149}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - \frac{\ell \cdot \ell}{Om} \cdot 2\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\\
\mathbf{else}:\\
\;\;\;\;\sqrt{2 \cdot \left(\sqrt[3]{U} \cdot \sqrt[3]{U}\right)} \cdot \sqrt{\sqrt[3]{U} \cdot \left(t \cdot n + \left(\left(\sqrt[3]{\frac{\ell}{Om}} \cdot \left(-n\right)\right) \cdot \left(\sqrt[3]{\frac{\ell}{Om}} \cdot \sqrt[3]{\frac{\ell}{Om}}\right)\right) \cdot \left(2 \cdot \ell - \left(n \cdot \frac{\ell}{Om}\right) \cdot \left(U* - U\right)\right)\right)}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r2142789 = 2.0;
double r2142790 = n;
double r2142791 = r2142789 * r2142790;
double r2142792 = U;
double r2142793 = r2142791 * r2142792;
double r2142794 = t;
double r2142795 = l;
double r2142796 = r2142795 * r2142795;
double r2142797 = Om;
double r2142798 = r2142796 / r2142797;
double r2142799 = r2142789 * r2142798;
double r2142800 = r2142794 - r2142799;
double r2142801 = r2142795 / r2142797;
double r2142802 = pow(r2142801, r2142789);
double r2142803 = r2142790 * r2142802;
double r2142804 = U_;
double r2142805 = r2142792 - r2142804;
double r2142806 = r2142803 * r2142805;
double r2142807 = r2142800 - r2142806;
double r2142808 = r2142793 * r2142807;
double r2142809 = sqrt(r2142808);
return r2142809;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r2142810 = 2.0;
double r2142811 = n;
double r2142812 = r2142810 * r2142811;
double r2142813 = U;
double r2142814 = r2142812 * r2142813;
double r2142815 = t;
double r2142816 = l;
double r2142817 = r2142816 * r2142816;
double r2142818 = Om;
double r2142819 = r2142817 / r2142818;
double r2142820 = r2142819 * r2142810;
double r2142821 = r2142815 - r2142820;
double r2142822 = r2142816 / r2142818;
double r2142823 = pow(r2142822, r2142810);
double r2142824 = r2142811 * r2142823;
double r2142825 = U_;
double r2142826 = r2142813 - r2142825;
double r2142827 = r2142824 * r2142826;
double r2142828 = r2142821 - r2142827;
double r2142829 = r2142814 * r2142828;
double r2142830 = sqrt(r2142829);
double r2142831 = 0.0;
bool r2142832 = r2142830 <= r2142831;
double r2142833 = cbrt(r2142813);
double r2142834 = cbrt(r2142833);
double r2142835 = fabs(r2142834);
double r2142836 = r2142815 * r2142811;
double r2142837 = r2142818 / r2142811;
double r2142838 = r2142816 / r2142837;
double r2142839 = r2142810 * r2142816;
double r2142840 = r2142825 - r2142813;
double r2142841 = r2142840 * r2142838;
double r2142842 = r2142839 - r2142841;
double r2142843 = r2142838 * r2142842;
double r2142844 = r2142836 - r2142843;
double r2142845 = r2142834 * r2142844;
double r2142846 = sqrt(r2142845);
double r2142847 = r2142835 * r2142846;
double r2142848 = r2142833 * r2142833;
double r2142849 = r2142810 * r2142848;
double r2142850 = sqrt(r2142849);
double r2142851 = r2142847 * r2142850;
double r2142852 = 3.808352790811895e+149;
bool r2142853 = r2142830 <= r2142852;
double r2142854 = cbrt(r2142822);
double r2142855 = -r2142811;
double r2142856 = r2142854 * r2142855;
double r2142857 = r2142854 * r2142854;
double r2142858 = r2142856 * r2142857;
double r2142859 = r2142811 * r2142822;
double r2142860 = r2142859 * r2142840;
double r2142861 = r2142839 - r2142860;
double r2142862 = r2142858 * r2142861;
double r2142863 = r2142836 + r2142862;
double r2142864 = r2142833 * r2142863;
double r2142865 = sqrt(r2142864);
double r2142866 = r2142850 * r2142865;
double r2142867 = r2142853 ? r2142830 : r2142866;
double r2142868 = r2142832 ? r2142851 : r2142867;
return r2142868;
}



Bits error versus n



Bits error versus U



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus U*
Results
if (sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))) < 0.0Initial program 56.9
Simplified39.7
rmApplied add-cube-cbrt39.9
Applied associate-*l*39.9
Applied associate-*r*39.9
Applied sqrt-prod21.6
rmApplied sub-neg21.6
Applied distribute-lft-in21.6
Simplified21.4
rmApplied add-cube-cbrt21.6
Applied associate-*l*21.6
Applied sqrt-prod17.6
Simplified17.6
Simplified18.8
if 0.0 < (sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))) < 3.808352790811895e+149Initial program 1.9
if 3.808352790811895e+149 < (sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))) Initial program 60.0
Simplified51.6
rmApplied add-cube-cbrt51.7
Applied associate-*l*51.7
Applied associate-*r*51.7
Applied sqrt-prod47.4
rmApplied sub-neg47.4
Applied distribute-lft-in47.4
Simplified36.0
rmApplied add-cube-cbrt36.0
Applied associate-*l*36.0
Final simplification18.2
herbie shell --seed 2019158
(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*))))))