Average Error: 32.8 → 24.9
Time: 53.1s
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 -8.0110620477323 \cdot 10^{-311}:\\ \;\;\;\;\sqrt{\left(n \cdot \mathsf{fma}\left(-2, \frac{\ell}{\frac{Om}{\ell}}, t\right)\right) \cdot \left(2 \cdot U\right) + \left(\left(U* - U\right) \cdot \frac{\ell \cdot n}{Om}\right) \cdot \left(\left(2 \cdot U\right) \cdot \frac{\ell \cdot n}{Om}\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\mathsf{fma}\left(U* - U, \frac{\frac{n}{\frac{Om}{\ell}}}{\frac{Om}{\ell}}, \mathsf{fma}\left(-2, \frac{\ell}{\frac{Om}{\ell}}, t\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 -8.0110620477323 \cdot 10^{-311}:\\
\;\;\;\;\sqrt{\left(n \cdot \mathsf{fma}\left(-2, \frac{\ell}{\frac{Om}{\ell}}, t\right)\right) \cdot \left(2 \cdot U\right) + \left(\left(U* - U\right) \cdot \frac{\ell \cdot n}{Om}\right) \cdot \left(\left(2 \cdot U\right) \cdot \frac{\ell \cdot n}{Om}\right)}\\

\mathbf{else}:\\
\;\;\;\;\sqrt{\mathsf{fma}\left(U* - U, \frac{\frac{n}{\frac{Om}{\ell}}}{\frac{Om}{\ell}}, \mathsf{fma}\left(-2, \frac{\ell}{\frac{Om}{\ell}}, t\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 r2343357 = 2.0;
        double r2343358 = n;
        double r2343359 = r2343357 * r2343358;
        double r2343360 = U;
        double r2343361 = r2343359 * r2343360;
        double r2343362 = t;
        double r2343363 = l;
        double r2343364 = r2343363 * r2343363;
        double r2343365 = Om;
        double r2343366 = r2343364 / r2343365;
        double r2343367 = r2343357 * r2343366;
        double r2343368 = r2343362 - r2343367;
        double r2343369 = r2343363 / r2343365;
        double r2343370 = pow(r2343369, r2343357);
        double r2343371 = r2343358 * r2343370;
        double r2343372 = U_;
        double r2343373 = r2343360 - r2343372;
        double r2343374 = r2343371 * r2343373;
        double r2343375 = r2343368 - r2343374;
        double r2343376 = r2343361 * r2343375;
        double r2343377 = sqrt(r2343376);
        return r2343377;
}

double f(double n, double U, double t, double l, double Om, double U_) {
        double r2343378 = U;
        double r2343379 = -8.0110620477323e-311;
        bool r2343380 = r2343378 <= r2343379;
        double r2343381 = n;
        double r2343382 = -2.0;
        double r2343383 = l;
        double r2343384 = Om;
        double r2343385 = r2343384 / r2343383;
        double r2343386 = r2343383 / r2343385;
        double r2343387 = t;
        double r2343388 = fma(r2343382, r2343386, r2343387);
        double r2343389 = r2343381 * r2343388;
        double r2343390 = 2.0;
        double r2343391 = r2343390 * r2343378;
        double r2343392 = r2343389 * r2343391;
        double r2343393 = U_;
        double r2343394 = r2343393 - r2343378;
        double r2343395 = r2343383 * r2343381;
        double r2343396 = r2343395 / r2343384;
        double r2343397 = r2343394 * r2343396;
        double r2343398 = r2343391 * r2343396;
        double r2343399 = r2343397 * r2343398;
        double r2343400 = r2343392 + r2343399;
        double r2343401 = sqrt(r2343400);
        double r2343402 = r2343381 / r2343385;
        double r2343403 = r2343402 / r2343385;
        double r2343404 = fma(r2343394, r2343403, r2343388);
        double r2343405 = r2343404 * r2343381;
        double r2343406 = sqrt(r2343405);
        double r2343407 = sqrt(r2343391);
        double r2343408 = r2343406 * r2343407;
        double r2343409 = r2343380 ? r2343401 : r2343408;
        return r2343409;
}

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 < -8.0110620477323e-311

    1. Initial program 32.9

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

      \[\leadsto \color{blue}{\sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \mathsf{fma}\left(U* - U, \frac{\frac{n}{\frac{Om}{\ell}}}{\frac{Om}{\ell}}, \mathsf{fma}\left(-2, \frac{\ell}{\frac{Om}{\ell}}, t\right)\right)\right)}}\]
    3. Using strategy rm
    4. Applied fma-udef28.7

      \[\leadsto \sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \color{blue}{\left(\left(U* - U\right) \cdot \frac{\frac{n}{\frac{Om}{\ell}}}{\frac{Om}{\ell}} + \mathsf{fma}\left(-2, \frac{\ell}{\frac{Om}{\ell}}, t\right)\right)}\right)}\]
    5. Applied distribute-rgt-in28.7

      \[\leadsto \sqrt{\left(U \cdot 2\right) \cdot \color{blue}{\left(\left(\left(U* - U\right) \cdot \frac{\frac{n}{\frac{Om}{\ell}}}{\frac{Om}{\ell}}\right) \cdot n + \mathsf{fma}\left(-2, \frac{\ell}{\frac{Om}{\ell}}, t\right) \cdot n\right)}}\]
    6. Simplified28.5

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

      \[\leadsto \sqrt{\left(U \cdot 2\right) \cdot \left(\color{blue}{\left(\left(U* - U\right) \cdot \frac{n}{\frac{Om}{\ell}}\right) \cdot \frac{n}{\frac{Om}{\ell}}} + \mathsf{fma}\left(-2, \frac{\ell}{\frac{Om}{\ell}}, t\right) \cdot n\right)}\]
    9. Using strategy rm
    10. Applied associate-/r/28.0

      \[\leadsto \sqrt{\left(U \cdot 2\right) \cdot \left(\left(\left(U* - U\right) \cdot \frac{n}{\frac{Om}{\ell}}\right) \cdot \color{blue}{\left(\frac{n}{Om} \cdot \ell\right)} + \mathsf{fma}\left(-2, \frac{\ell}{\frac{Om}{\ell}}, t\right) \cdot n\right)}\]
    11. Using strategy rm
    12. Applied distribute-lft-in28.0

      \[\leadsto \sqrt{\color{blue}{\left(U \cdot 2\right) \cdot \left(\left(\left(U* - U\right) \cdot \frac{n}{\frac{Om}{\ell}}\right) \cdot \left(\frac{n}{Om} \cdot \ell\right)\right) + \left(U \cdot 2\right) \cdot \left(\mathsf{fma}\left(-2, \frac{\ell}{\frac{Om}{\ell}}, t\right) \cdot n\right)}}\]
    13. Simplified27.5

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

    if -8.0110620477323e-311 < U

    1. Initial program 32.6

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

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

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

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

Reproduce

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