Average Error: 33.9 → 27.1
Time: 1.5m
Precision: 64
\[\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 1.48807212119155 \cdot 10^{-310}:\\ \;\;\;\;\sqrt{2 \cdot \left(n \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left({\left(\frac{\ell}{Om}\right)}^{2} \cdot n\right) \cdot \left(U - U*\right)\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{U \cdot \left(-2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right) - \left(n \cdot \frac{\ell}{Om}\right) \cdot \left(\left(U - U*\right) \cdot \frac{\ell}{Om}\right)\right) + U \cdot t} \cdot \sqrt{2 \cdot n}\\ \end{array}\]
\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 1.48807212119155 \cdot 10^{-310}:\\
\;\;\;\;\sqrt{2 \cdot \left(n \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left({\left(\frac{\ell}{Om}\right)}^{2} \cdot n\right) \cdot \left(U - U*\right)\right)\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{U \cdot \left(-2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right) - \left(n \cdot \frac{\ell}{Om}\right) \cdot \left(\left(U - U*\right) \cdot \frac{\ell}{Om}\right)\right) + U \cdot t} \cdot \sqrt{2 \cdot n}\\

\end{array}
double f(double n, double U, double t, double l, double Om, double U_) {
        double r14100785 = 2.0;
        double r14100786 = n;
        double r14100787 = r14100785 * r14100786;
        double r14100788 = U;
        double r14100789 = r14100787 * r14100788;
        double r14100790 = t;
        double r14100791 = l;
        double r14100792 = r14100791 * r14100791;
        double r14100793 = Om;
        double r14100794 = r14100792 / r14100793;
        double r14100795 = r14100785 * r14100794;
        double r14100796 = r14100790 - r14100795;
        double r14100797 = r14100791 / r14100793;
        double r14100798 = pow(r14100797, r14100785);
        double r14100799 = r14100786 * r14100798;
        double r14100800 = U_;
        double r14100801 = r14100788 - r14100800;
        double r14100802 = r14100799 * r14100801;
        double r14100803 = r14100796 - r14100802;
        double r14100804 = r14100789 * r14100803;
        double r14100805 = sqrt(r14100804);
        return r14100805;
}

double f(double n, double U, double t, double l, double Om, double U_) {
        double r14100806 = n;
        double r14100807 = 1.48807212119155e-310;
        bool r14100808 = r14100806 <= r14100807;
        double r14100809 = 2.0;
        double r14100810 = U;
        double r14100811 = t;
        double r14100812 = l;
        double r14100813 = Om;
        double r14100814 = r14100812 / r14100813;
        double r14100815 = r14100812 * r14100814;
        double r14100816 = r14100809 * r14100815;
        double r14100817 = r14100811 - r14100816;
        double r14100818 = pow(r14100814, r14100809);
        double r14100819 = r14100818 * r14100806;
        double r14100820 = U_;
        double r14100821 = r14100810 - r14100820;
        double r14100822 = r14100819 * r14100821;
        double r14100823 = r14100817 - r14100822;
        double r14100824 = r14100810 * r14100823;
        double r14100825 = r14100806 * r14100824;
        double r14100826 = r14100809 * r14100825;
        double r14100827 = sqrt(r14100826);
        double r14100828 = -2.0;
        double r14100829 = r14100828 * r14100815;
        double r14100830 = r14100806 * r14100814;
        double r14100831 = r14100821 * r14100814;
        double r14100832 = r14100830 * r14100831;
        double r14100833 = r14100829 - r14100832;
        double r14100834 = r14100810 * r14100833;
        double r14100835 = r14100810 * r14100811;
        double r14100836 = r14100834 + r14100835;
        double r14100837 = sqrt(r14100836);
        double r14100838 = r14100809 * r14100806;
        double r14100839 = sqrt(r14100838);
        double r14100840 = r14100837 * r14100839;
        double r14100841 = r14100808 ? r14100827 : r14100840;
        return r14100841;
}

Error

Bits error versus n

Bits error versus U

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus U*

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if n < 1.48807212119155e-310

    1. Initial program 34.0

      \[\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)}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity34.0

      \[\leadsto \sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{\color{blue}{1 \cdot Om}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\]
    4. Applied times-frac31.4

      \[\leadsto \sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \color{blue}{\left(\frac{\ell}{1} \cdot \frac{\ell}{Om}\right)}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\]
    5. Simplified31.4

      \[\leadsto \sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \left(\color{blue}{\ell} \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\]
    6. Using strategy rm
    7. Applied associate-*l*31.1

      \[\leadsto \sqrt{\color{blue}{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}}\]
    8. Using strategy rm
    9. Applied associate-*l*31.2

      \[\leadsto \sqrt{\color{blue}{2 \cdot \left(n \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)\right)}}\]

    if 1.48807212119155e-310 < n

    1. Initial program 33.8

      \[\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)}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity33.8

      \[\leadsto \sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell \cdot \ell}{\color{blue}{1 \cdot Om}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\]
    4. Applied times-frac31.3

      \[\leadsto \sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \color{blue}{\left(\frac{\ell}{1} \cdot \frac{\ell}{Om}\right)}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\]
    5. Simplified31.3

      \[\leadsto \sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \left(\color{blue}{\ell} \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\]
    6. Using strategy rm
    7. Applied associate-*l*31.7

      \[\leadsto \sqrt{\color{blue}{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}}\]
    8. Using strategy rm
    9. Applied sub-neg31.7

      \[\leadsto \sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\color{blue}{\left(t + \left(-2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right)\right)} - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}\]
    10. Applied associate--l+31.7

      \[\leadsto \sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \color{blue}{\left(t + \left(\left(-2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}\right)}\]
    11. Applied distribute-lft-in31.7

      \[\leadsto \sqrt{\left(2 \cdot n\right) \cdot \color{blue}{\left(U \cdot t + U \cdot \left(\left(-2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}}\]
    12. Simplified30.3

      \[\leadsto \sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot t + \color{blue}{U \cdot \left(-2 \cdot \left(\frac{\ell}{Om} \cdot \ell\right) - \left(\frac{\ell}{Om} \cdot \left(U - U*\right)\right) \cdot \left(\frac{\ell}{Om} \cdot n\right)\right)}\right)}\]
    13. Using strategy rm
    14. Applied sqrt-prod23.0

      \[\leadsto \color{blue}{\sqrt{2 \cdot n} \cdot \sqrt{U \cdot t + U \cdot \left(-2 \cdot \left(\frac{\ell}{Om} \cdot \ell\right) - \left(\frac{\ell}{Om} \cdot \left(U - U*\right)\right) \cdot \left(\frac{\ell}{Om} \cdot n\right)\right)}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification27.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;n \le 1.48807212119155 \cdot 10^{-310}:\\ \;\;\;\;\sqrt{2 \cdot \left(n \cdot \left(U \cdot \left(\left(t - 2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right)\right) - \left({\left(\frac{\ell}{Om}\right)}^{2} \cdot n\right) \cdot \left(U - U*\right)\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{U \cdot \left(-2 \cdot \left(\ell \cdot \frac{\ell}{Om}\right) - \left(n \cdot \frac{\ell}{Om}\right) \cdot \left(\left(U - U*\right) \cdot \frac{\ell}{Om}\right)\right) + U \cdot t} \cdot \sqrt{2 \cdot n}\\ \end{array}\]

Reproduce

herbie shell --seed 2019121 +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*))))))