Average Error: 32.8 → 25.7
Time: 51.2s
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}\;U \le 1.4828608859501 \cdot 10^{-310}:\\ \;\;\;\;\sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot \left(t - \left(\left(2 \cdot \frac{\ell}{Om}\right) \cdot \ell + \left(\frac{\ell}{Om} \cdot n\right) \cdot \left(\frac{\ell}{Om} \cdot \left(U - U*\right)\right)\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(t - \left(\left(U - U*\right) \cdot \left(\frac{\ell}{Om} \cdot \left(\frac{\ell}{Om} \cdot n\right)\right) + \left(2 \cdot \frac{\ell}{Om}\right) \cdot \ell\right)\right) \cdot n} \cdot \sqrt{2 \cdot U}\\ \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}\;U \le 1.4828608859501 \cdot 10^{-310}:\\
\;\;\;\;\sqrt{\left(2 \cdot U\right) \cdot \left(n \cdot \left(t - \left(\left(2 \cdot \frac{\ell}{Om}\right) \cdot \ell + \left(\frac{\ell}{Om} \cdot n\right) \cdot \left(\frac{\ell}{Om} \cdot \left(U - U*\right)\right)\right)\right)\right)}\\

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

\end{array}
double f(double n, double U, double t, double l, double Om, double U_) {
        double r880962 = 2.0;
        double r880963 = n;
        double r880964 = r880962 * r880963;
        double r880965 = U;
        double r880966 = r880964 * r880965;
        double r880967 = t;
        double r880968 = l;
        double r880969 = r880968 * r880968;
        double r880970 = Om;
        double r880971 = r880969 / r880970;
        double r880972 = r880962 * r880971;
        double r880973 = r880967 - r880972;
        double r880974 = r880968 / r880970;
        double r880975 = pow(r880974, r880962);
        double r880976 = r880963 * r880975;
        double r880977 = U_;
        double r880978 = r880965 - r880977;
        double r880979 = r880976 * r880978;
        double r880980 = r880973 - r880979;
        double r880981 = r880966 * r880980;
        double r880982 = sqrt(r880981);
        return r880982;
}

double f(double n, double U, double t, double l, double Om, double U_) {
        double r880983 = U;
        double r880984 = 1.4828608859501e-310;
        bool r880985 = r880983 <= r880984;
        double r880986 = 2.0;
        double r880987 = r880986 * r880983;
        double r880988 = n;
        double r880989 = t;
        double r880990 = l;
        double r880991 = Om;
        double r880992 = r880990 / r880991;
        double r880993 = r880986 * r880992;
        double r880994 = r880993 * r880990;
        double r880995 = r880992 * r880988;
        double r880996 = U_;
        double r880997 = r880983 - r880996;
        double r880998 = r880992 * r880997;
        double r880999 = r880995 * r880998;
        double r881000 = r880994 + r880999;
        double r881001 = r880989 - r881000;
        double r881002 = r880988 * r881001;
        double r881003 = r880987 * r881002;
        double r881004 = sqrt(r881003);
        double r881005 = r880992 * r880995;
        double r881006 = r880997 * r881005;
        double r881007 = r881006 + r880994;
        double r881008 = r880989 - r881007;
        double r881009 = r881008 * r880988;
        double r881010 = sqrt(r881009);
        double r881011 = sqrt(r880987);
        double r881012 = r881010 * r881011;
        double r881013 = r880985 ? r881004 : r881012;
        return r881013;
}

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 U < 1.4828608859501e-310

    1. Initial program 32.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. Simplified29.2

      \[\leadsto \color{blue}{\sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \left(t - \left(\left(\left(n \cdot \frac{\ell}{Om}\right) \cdot \frac{\ell}{Om}\right) \cdot \left(U - U*\right) + \left(\frac{\ell}{Om} \cdot 2\right) \cdot \ell\right)\right)\right)}}\]
    3. Using strategy rm
    4. Applied associate-*l*29.4

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

    if 1.4828608859501e-310 < U

    1. Initial program 32.7

      \[\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. Simplified29.0

      \[\leadsto \color{blue}{\sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \left(t - \left(\left(\left(n \cdot \frac{\ell}{Om}\right) \cdot \frac{\ell}{Om}\right) \cdot \left(U - U*\right) + \left(\frac{\ell}{Om} \cdot 2\right) \cdot \ell\right)\right)\right)}}\]
    3. Using strategy rm
    4. Applied sqrt-prod21.8

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

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

Reproduce

herbie shell --seed 2019152 
(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*))))))