\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 0.0:\\
\;\;\;\;\sqrt{\left(U \cdot 2\right) \cdot \frac{n \cdot -2}{\frac{\frac{Om}{\ell}}{\ell}} + \left(U \cdot 2\right) \cdot \left(n \cdot \left(t - \frac{\frac{n}{\frac{Om}{\ell}} \cdot \left(U - U*\right)}{\frac{Om}{\ell}}\right)\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 8.046145761530675 \cdot 10^{+302}:\\
\;\;\;\;\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{\left(\left(t - \frac{\frac{1}{\frac{1}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}}}{Om} \cdot \left(\frac{\frac{n}{\frac{Om}{\sqrt[3]{\ell}}}}{\frac{1}{\ell}} \cdot \left(U - U*\right)\right)\right) \cdot n\right) \cdot \left(U \cdot 2\right) + \left(\left(\frac{\sqrt[3]{n}}{\frac{\frac{\sqrt[3]{Om}}{\ell}}{\sqrt[3]{\sqrt[3]{\ell}}}} \cdot \left(U \cdot 2\right)\right) \cdot \frac{\sqrt[3]{n} \cdot \sqrt[3]{n}}{\frac{\sqrt[3]{Om} \cdot \sqrt[3]{Om}}{\sqrt[3]{\sqrt[3]{\ell}} \cdot \sqrt[3]{\sqrt[3]{\ell}}}}\right) \cdot \frac{-2}{\frac{1}{\sqrt[3]{\ell} \cdot \sqrt[3]{\ell}}}}\\
\end{array}double f(double n, double U, double t, double l, double Om, double U_) {
double r3757708 = 2.0;
double r3757709 = n;
double r3757710 = r3757708 * r3757709;
double r3757711 = U;
double r3757712 = r3757710 * r3757711;
double r3757713 = t;
double r3757714 = l;
double r3757715 = r3757714 * r3757714;
double r3757716 = Om;
double r3757717 = r3757715 / r3757716;
double r3757718 = r3757708 * r3757717;
double r3757719 = r3757713 - r3757718;
double r3757720 = r3757714 / r3757716;
double r3757721 = pow(r3757720, r3757708);
double r3757722 = r3757709 * r3757721;
double r3757723 = U_;
double r3757724 = r3757711 - r3757723;
double r3757725 = r3757722 * r3757724;
double r3757726 = r3757719 - r3757725;
double r3757727 = r3757712 * r3757726;
double r3757728 = sqrt(r3757727);
return r3757728;
}
double f(double n, double U, double t, double l, double Om, double U_) {
double r3757729 = 2.0;
double r3757730 = n;
double r3757731 = r3757729 * r3757730;
double r3757732 = U;
double r3757733 = r3757731 * r3757732;
double r3757734 = t;
double r3757735 = l;
double r3757736 = r3757735 * r3757735;
double r3757737 = Om;
double r3757738 = r3757736 / r3757737;
double r3757739 = r3757738 * r3757729;
double r3757740 = r3757734 - r3757739;
double r3757741 = r3757735 / r3757737;
double r3757742 = pow(r3757741, r3757729);
double r3757743 = r3757730 * r3757742;
double r3757744 = U_;
double r3757745 = r3757732 - r3757744;
double r3757746 = r3757743 * r3757745;
double r3757747 = r3757740 - r3757746;
double r3757748 = r3757733 * r3757747;
double r3757749 = 0.0;
bool r3757750 = r3757748 <= r3757749;
double r3757751 = r3757732 * r3757729;
double r3757752 = -2.0;
double r3757753 = r3757730 * r3757752;
double r3757754 = r3757737 / r3757735;
double r3757755 = r3757754 / r3757735;
double r3757756 = r3757753 / r3757755;
double r3757757 = r3757751 * r3757756;
double r3757758 = r3757730 / r3757754;
double r3757759 = r3757758 * r3757745;
double r3757760 = r3757759 / r3757754;
double r3757761 = r3757734 - r3757760;
double r3757762 = r3757730 * r3757761;
double r3757763 = r3757751 * r3757762;
double r3757764 = r3757757 + r3757763;
double r3757765 = sqrt(r3757764);
double r3757766 = 8.046145761530675e+302;
bool r3757767 = r3757748 <= r3757766;
double r3757768 = sqrt(r3757748);
double r3757769 = 1.0;
double r3757770 = cbrt(r3757735);
double r3757771 = r3757770 * r3757770;
double r3757772 = r3757769 / r3757771;
double r3757773 = r3757769 / r3757772;
double r3757774 = r3757773 / r3757737;
double r3757775 = r3757737 / r3757770;
double r3757776 = r3757730 / r3757775;
double r3757777 = r3757769 / r3757735;
double r3757778 = r3757776 / r3757777;
double r3757779 = r3757778 * r3757745;
double r3757780 = r3757774 * r3757779;
double r3757781 = r3757734 - r3757780;
double r3757782 = r3757781 * r3757730;
double r3757783 = r3757782 * r3757751;
double r3757784 = cbrt(r3757730);
double r3757785 = cbrt(r3757737);
double r3757786 = r3757785 / r3757735;
double r3757787 = cbrt(r3757770);
double r3757788 = r3757786 / r3757787;
double r3757789 = r3757784 / r3757788;
double r3757790 = r3757789 * r3757751;
double r3757791 = r3757784 * r3757784;
double r3757792 = r3757785 * r3757785;
double r3757793 = r3757787 * r3757787;
double r3757794 = r3757792 / r3757793;
double r3757795 = r3757791 / r3757794;
double r3757796 = r3757790 * r3757795;
double r3757797 = r3757752 / r3757772;
double r3757798 = r3757796 * r3757797;
double r3757799 = r3757783 + r3757798;
double r3757800 = sqrt(r3757799);
double r3757801 = r3757767 ? r3757768 : r3757800;
double r3757802 = r3757750 ? r3757765 : r3757801;
return r3757802;
}



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 (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) < 0.0Initial program 56.7
Simplified38.2
rmApplied distribute-lft-in38.2
Applied distribute-lft-in38.2
Applied distribute-rgt-in38.2
Simplified37.1
Simplified37.1
rmApplied associate-*l/35.7
if 0.0 < (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) < 8.046145761530675e+302Initial program 2.0
if 8.046145761530675e+302 < (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*)))) Initial program 60.2
Simplified57.8
rmApplied distribute-lft-in57.8
Applied distribute-lft-in57.8
Applied distribute-rgt-in57.8
Simplified50.5
Simplified50.5
rmApplied div-inv50.5
Applied add-cube-cbrt50.5
Applied *-un-lft-identity50.5
Applied times-frac50.5
Applied *-un-lft-identity50.5
Applied times-frac50.5
Applied times-frac50.5
Applied associate-*l*50.0
rmApplied add-cube-cbrt50.1
Applied *-un-lft-identity50.1
Applied times-frac50.1
Applied times-frac46.5
Applied associate-*l*45.9
rmApplied add-cube-cbrt45.9
Applied *-un-lft-identity45.9
Applied add-cube-cbrt45.9
Applied times-frac45.9
Applied times-frac45.9
Applied add-cube-cbrt46.0
Applied times-frac45.5
Applied associate-*l*46.0
Final simplification24.4
herbie shell --seed 2019135
(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*))))))