\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}\;\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 1.092557959512387 \cdot 10^{-276}:\\
\;\;\;\;\sqrt{\left(U \cdot \mathsf{fma}\left(0 \cdot \frac{\ell}{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}, n, \mathsf{fma}\left(\frac{\ell}{Om} \cdot \ell, -2, t\right)\right)\right) \cdot \left(2 \cdot n\right)}\\
\mathbf{elif}\;\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 1.1462142433560081 \cdot 10^{+262}:\\
\;\;\;\;\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{U \cdot \mathsf{fma}\left(\frac{\frac{\ell}{\sqrt[3]{Om}}}{\sqrt[3]{Om}}, n \cdot \left(\frac{U* - U}{\sqrt[3]{Om}} \cdot \frac{\ell}{Om}\right), \mathsf{fma}\left(-2, \frac{\ell}{Om} \cdot \ell, t\right)\right)} \cdot \sqrt{2 \cdot n}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r1528788 = 2.0;
double r1528789 = n;
double r1528790 = r1528788 * r1528789;
double r1528791 = U;
double r1528792 = r1528790 * r1528791;
double r1528793 = t;
double r1528794 = l;
double r1528795 = r1528794 * r1528794;
double r1528796 = Om;
double r1528797 = r1528795 / r1528796;
double r1528798 = r1528788 * r1528797;
double r1528799 = r1528793 - r1528798;
double r1528800 = r1528794 / r1528796;
double r1528801 = pow(r1528800, r1528788);
double r1528802 = r1528789 * r1528801;
double r1528803 = U_;
double r1528804 = r1528791 - r1528803;
double r1528805 = r1528802 * r1528804;
double r1528806 = r1528799 - r1528805;
double r1528807 = r1528792 * r1528806;
double r1528808 = sqrt(r1528807);
return r1528808;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r1528809 = 2.0;
double r1528810 = n;
double r1528811 = r1528809 * r1528810;
double r1528812 = U;
double r1528813 = r1528811 * r1528812;
double r1528814 = t;
double r1528815 = l;
double r1528816 = r1528815 * r1528815;
double r1528817 = Om;
double r1528818 = r1528816 / r1528817;
double r1528819 = r1528818 * r1528809;
double r1528820 = r1528814 - r1528819;
double r1528821 = r1528815 / r1528817;
double r1528822 = pow(r1528821, r1528809);
double r1528823 = r1528810 * r1528822;
double r1528824 = U_;
double r1528825 = r1528812 - r1528824;
double r1528826 = r1528823 * r1528825;
double r1528827 = r1528820 - r1528826;
double r1528828 = r1528813 * r1528827;
double r1528829 = 1.092557959512387e-276;
bool r1528830 = r1528828 <= r1528829;
double r1528831 = 0.0;
double r1528832 = cbrt(r1528817);
double r1528833 = r1528832 * r1528832;
double r1528834 = r1528815 / r1528833;
double r1528835 = r1528831 * r1528834;
double r1528836 = r1528821 * r1528815;
double r1528837 = -2.0;
double r1528838 = fma(r1528836, r1528837, r1528814);
double r1528839 = fma(r1528835, r1528810, r1528838);
double r1528840 = r1528812 * r1528839;
double r1528841 = r1528840 * r1528811;
double r1528842 = sqrt(r1528841);
double r1528843 = 1.1462142433560081e+262;
bool r1528844 = r1528828 <= r1528843;
double r1528845 = sqrt(r1528828);
double r1528846 = r1528815 / r1528832;
double r1528847 = r1528846 / r1528832;
double r1528848 = r1528824 - r1528812;
double r1528849 = r1528848 / r1528832;
double r1528850 = r1528849 * r1528821;
double r1528851 = r1528810 * r1528850;
double r1528852 = fma(r1528837, r1528836, r1528814);
double r1528853 = fma(r1528847, r1528851, r1528852);
double r1528854 = r1528812 * r1528853;
double r1528855 = sqrt(r1528854);
double r1528856 = sqrt(r1528811);
double r1528857 = r1528855 * r1528856;
double r1528858 = r1528844 ? r1528845 : r1528857;
double r1528859 = r1528830 ? r1528842 : r1528858;
return r1528859;
}



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 (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) < 1.092557959512387e-276Initial program 52.6
Simplified40.3
rmApplied *-un-lft-identity40.3
Applied add-cube-cbrt40.3
Applied times-frac40.3
Applied times-frac40.2
Applied associate-*l*38.4
rmApplied *-un-lft-identity38.4
Applied times-frac37.1
Simplified37.1
Taylor expanded around 0 38.6
if 1.092557959512387e-276 < (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) < 1.1462142433560081e+262Initial program 1.3
if 1.1462142433560081e+262 < (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) Initial program 57.2
Simplified56.7
rmApplied *-un-lft-identity56.7
Applied add-cube-cbrt56.7
Applied times-frac56.6
Applied times-frac56.5
Applied associate-*l*55.9
rmApplied sqrt-prod54.8
Simplified51.5
Final simplification28.6
herbie shell --seed 2019163 +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*))))))