Average Error: 32.9 → 29.4
Time: 2.7m
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 2.53242417465238 \cdot 10^{-11}:\\ \;\;\;\;\sqrt{2 \cdot \left(\left(-\left(\left(n \cdot \frac{\ell}{Om}\right) \cdot \left(n \cdot \frac{\ell}{Om}\right)\right) \cdot \left(U - U*\right)\right) \cdot U + U \cdot \left((\left(\frac{\ell}{\frac{Om}{\ell}}\right) \cdot -2 + t)_* \cdot n\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(\left(n \cdot U\right) \cdot \left((\left(\frac{\ell}{\frac{Om}{\ell}}\right) \cdot -2 + t)_* - \frac{\frac{n}{\frac{Om}{\ell}} \cdot \left(U - U*\right)}{\frac{Om}{\ell}}\right)\right) \cdot 2}\\ \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 2.53242417465238 \cdot 10^{-11}:\\
\;\;\;\;\sqrt{2 \cdot \left(\left(-\left(\left(n \cdot \frac{\ell}{Om}\right) \cdot \left(n \cdot \frac{\ell}{Om}\right)\right) \cdot \left(U - U*\right)\right) \cdot U + U \cdot \left((\left(\frac{\ell}{\frac{Om}{\ell}}\right) \cdot -2 + t)_* \cdot n\right)\right)}\\

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

\end{array}
double f(double n, double U, double t, double l, double Om, double U_) {
        double r14730395 = 2.0;
        double r14730396 = n;
        double r14730397 = r14730395 * r14730396;
        double r14730398 = U;
        double r14730399 = r14730397 * r14730398;
        double r14730400 = t;
        double r14730401 = l;
        double r14730402 = r14730401 * r14730401;
        double r14730403 = Om;
        double r14730404 = r14730402 / r14730403;
        double r14730405 = r14730395 * r14730404;
        double r14730406 = r14730400 - r14730405;
        double r14730407 = r14730401 / r14730403;
        double r14730408 = pow(r14730407, r14730395);
        double r14730409 = r14730396 * r14730408;
        double r14730410 = U_;
        double r14730411 = r14730398 - r14730410;
        double r14730412 = r14730409 * r14730411;
        double r14730413 = r14730406 - r14730412;
        double r14730414 = r14730399 * r14730413;
        double r14730415 = sqrt(r14730414);
        return r14730415;
}

double f(double n, double U, double t, double l, double Om, double U_) {
        double r14730416 = U_;
        double r14730417 = 2.53242417465238e-11;
        bool r14730418 = r14730416 <= r14730417;
        double r14730419 = 2.0;
        double r14730420 = n;
        double r14730421 = l;
        double r14730422 = Om;
        double r14730423 = r14730421 / r14730422;
        double r14730424 = r14730420 * r14730423;
        double r14730425 = r14730424 * r14730424;
        double r14730426 = U;
        double r14730427 = r14730426 - r14730416;
        double r14730428 = r14730425 * r14730427;
        double r14730429 = -r14730428;
        double r14730430 = r14730429 * r14730426;
        double r14730431 = r14730422 / r14730421;
        double r14730432 = r14730421 / r14730431;
        double r14730433 = -2.0;
        double r14730434 = t;
        double r14730435 = fma(r14730432, r14730433, r14730434);
        double r14730436 = r14730435 * r14730420;
        double r14730437 = r14730426 * r14730436;
        double r14730438 = r14730430 + r14730437;
        double r14730439 = r14730419 * r14730438;
        double r14730440 = sqrt(r14730439);
        double r14730441 = r14730420 * r14730426;
        double r14730442 = r14730420 / r14730431;
        double r14730443 = r14730442 * r14730427;
        double r14730444 = r14730443 / r14730431;
        double r14730445 = r14730435 - r14730444;
        double r14730446 = r14730441 * r14730445;
        double r14730447 = r14730446 * r14730419;
        double r14730448 = sqrt(r14730447);
        double r14730449 = r14730418 ? r14730440 : r14730448;
        return r14730449;
}

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*

Derivation

  1. Split input into 2 regimes
  2. if U* < 2.53242417465238e-11

    1. Initial program 32.4

      \[\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. Simplified33.7

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

      \[\leadsto \sqrt{2 \cdot \left(U \cdot \left(n \cdot \left((\color{blue}{\left(\frac{\ell}{\frac{Om}{\ell}}\right)} \cdot -2 + t)_* - n \cdot \left(\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)}\]
    5. Using strategy rm
    6. Applied associate-*r*30.0

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

      \[\leadsto \sqrt{2 \cdot \left(U \cdot \left(n \cdot \color{blue}{\left((\left(\frac{\ell}{\frac{Om}{\ell}}\right) \cdot -2 + t)_* + \left(-\left(n \cdot \left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right)\right) \cdot \left(U - U*\right)\right)\right)}\right)\right)}\]
    9. Applied distribute-rgt-in30.0

      \[\leadsto \sqrt{2 \cdot \left(U \cdot \color{blue}{\left((\left(\frac{\ell}{\frac{Om}{\ell}}\right) \cdot -2 + t)_* \cdot n + \left(-\left(n \cdot \left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right)\right) \cdot \left(U - U*\right)\right) \cdot n\right)}\right)}\]
    10. Applied distribute-rgt-in30.0

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

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

    if 2.53242417465238e-11 < U*

    1. Initial program 34.2

      \[\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. Simplified35.6

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

      \[\leadsto \sqrt{2 \cdot \left(U \cdot \left(n \cdot \left((\color{blue}{\left(\frac{\ell}{\frac{Om}{\ell}}\right)} \cdot -2 + t)_* - n \cdot \left(\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)}\]
    5. Using strategy rm
    6. Applied associate-*r*31.9

      \[\leadsto \sqrt{2 \cdot \left(U \cdot \left(n \cdot \left((\left(\frac{\ell}{\frac{Om}{\ell}}\right) \cdot -2 + t)_* - \color{blue}{\left(n \cdot \left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right)\right) \cdot \left(U - U*\right)}\right)\right)\right)}\]
    7. Using strategy rm
    8. Applied associate-*r*32.1

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

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

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

Reproduce

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