Average Error: 33.8 → 26.6
Time: 59.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 -6.41106705850068 \cdot 10^{-128}:\\ \;\;\;\;{\left(2 \cdot \left(\left(U \cdot \left(n \cdot \frac{\ell}{Om}\right)\right) \cdot \left(\ell \cdot -2 - \left(n \cdot \frac{\ell}{Om}\right) \cdot \left(U - U*\right)\right)\right) + t \cdot \left(U \cdot \left(2 \cdot n\right)\right)\right)}^{\frac{1}{2}}\\ \mathbf{elif}\;U \le -7.711065449836014 \cdot 10^{-243}:\\ \;\;\;\;\sqrt{2 \cdot \left(\left(\frac{U}{\frac{\frac{Om}{n \cdot \ell} \cdot \frac{Om}{n \cdot \ell}}{U*}} + \frac{U \cdot \left(-U\right)}{\frac{Om}{n \cdot \ell} \cdot \frac{Om}{n \cdot \ell}}\right) + n \cdot \left(t \cdot U\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;{\left(2 \cdot \left(\left(U \cdot \left(n \cdot \frac{\ell}{Om}\right)\right) \cdot \left(\ell \cdot -2 - \left(n \cdot \frac{\ell}{Om}\right) \cdot \left(U - U*\right)\right)\right) + t \cdot \left(U \cdot \left(2 \cdot n\right)\right)\right)}^{\frac{1}{2}}\\ \end{array}\]
double f(double n, double U, double t, double l, double Om, double U_) {
        double r6873345 = 2.0;
        double r6873346 = n;
        double r6873347 = r6873345 * r6873346;
        double r6873348 = U;
        double r6873349 = r6873347 * r6873348;
        double r6873350 = t;
        double r6873351 = l;
        double r6873352 = r6873351 * r6873351;
        double r6873353 = Om;
        double r6873354 = r6873352 / r6873353;
        double r6873355 = r6873345 * r6873354;
        double r6873356 = r6873350 - r6873355;
        double r6873357 = r6873351 / r6873353;
        double r6873358 = pow(r6873357, r6873345);
        double r6873359 = r6873346 * r6873358;
        double r6873360 = U_;
        double r6873361 = r6873348 - r6873360;
        double r6873362 = r6873359 * r6873361;
        double r6873363 = r6873356 - r6873362;
        double r6873364 = r6873349 * r6873363;
        double r6873365 = sqrt(r6873364);
        return r6873365;
}

double f(double n, double U, double t, double l, double Om, double U_) {
        double r6873366 = U;
        double r6873367 = -6.41106705850068e-128;
        bool r6873368 = r6873366 <= r6873367;
        double r6873369 = 2.0;
        double r6873370 = n;
        double r6873371 = l;
        double r6873372 = Om;
        double r6873373 = r6873371 / r6873372;
        double r6873374 = r6873370 * r6873373;
        double r6873375 = r6873366 * r6873374;
        double r6873376 = -2.0;
        double r6873377 = r6873371 * r6873376;
        double r6873378 = U_;
        double r6873379 = r6873366 - r6873378;
        double r6873380 = r6873374 * r6873379;
        double r6873381 = r6873377 - r6873380;
        double r6873382 = r6873375 * r6873381;
        double r6873383 = r6873369 * r6873382;
        double r6873384 = t;
        double r6873385 = r6873369 * r6873370;
        double r6873386 = r6873366 * r6873385;
        double r6873387 = r6873384 * r6873386;
        double r6873388 = r6873383 + r6873387;
        double r6873389 = 0.5;
        double r6873390 = pow(r6873388, r6873389);
        double r6873391 = -7.711065449836014e-243;
        bool r6873392 = r6873366 <= r6873391;
        double r6873393 = r6873370 * r6873371;
        double r6873394 = r6873372 / r6873393;
        double r6873395 = r6873394 * r6873394;
        double r6873396 = r6873395 / r6873378;
        double r6873397 = r6873366 / r6873396;
        double r6873398 = -r6873366;
        double r6873399 = r6873366 * r6873398;
        double r6873400 = r6873399 / r6873395;
        double r6873401 = r6873397 + r6873400;
        double r6873402 = r6873384 * r6873366;
        double r6873403 = r6873370 * r6873402;
        double r6873404 = r6873401 + r6873403;
        double r6873405 = r6873369 * r6873404;
        double r6873406 = sqrt(r6873405);
        double r6873407 = r6873392 ? r6873406 : r6873390;
        double r6873408 = r6873368 ? r6873390 : r6873407;
        return r6873408;
}

\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 -6.41106705850068 \cdot 10^{-128}:\\
\;\;\;\;{\left(2 \cdot \left(\left(U \cdot \left(n \cdot \frac{\ell}{Om}\right)\right) \cdot \left(\ell \cdot -2 - \left(n \cdot \frac{\ell}{Om}\right) \cdot \left(U - U*\right)\right)\right) + t \cdot \left(U \cdot \left(2 \cdot n\right)\right)\right)}^{\frac{1}{2}}\\

\mathbf{elif}\;U \le -7.711065449836014 \cdot 10^{-243}:\\
\;\;\;\;\sqrt{2 \cdot \left(\left(\frac{U}{\frac{\frac{Om}{n \cdot \ell} \cdot \frac{Om}{n \cdot \ell}}{U*}} + \frac{U \cdot \left(-U\right)}{\frac{Om}{n \cdot \ell} \cdot \frac{Om}{n \cdot \ell}}\right) + n \cdot \left(t \cdot U\right)\right)}\\

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

\end{array}

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 < -6.41106705850068e-128 or -7.711065449836014e-243 < U

    1. Initial program 33.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. Using strategy rm
    3. Applied *-un-lft-identity33.2

      \[\leadsto \sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \color{blue}{\left(1 \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)\right)}}\]
    4. Applied associate-*r*33.2

      \[\leadsto \sqrt{\color{blue}{\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot 1\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)}}\]
    5. Simplified28.9

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

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

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

      \[\leadsto \sqrt{t \cdot \left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot 1\right) + \color{blue}{\left(\left(\left(\frac{\ell}{Om} \cdot n\right) \cdot U\right) \cdot \left(\ell \cdot -2 - \left(\frac{\ell}{Om} \cdot n\right) \cdot \left(U - U*\right)\right)\right) \cdot 2}}\]
    10. Using strategy rm
    11. Applied pow1/225.2

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

    if -6.41106705850068e-128 < U < -7.711065449836014e-243

    1. Initial program 38.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. Using strategy rm
    3. Applied *-un-lft-identity38.2

      \[\leadsto \sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \color{blue}{\left(1 \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)\right)}}\]
    4. Applied associate-*r*38.2

      \[\leadsto \sqrt{\color{blue}{\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot 1\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)}}\]
    5. Simplified34.8

      \[\leadsto \sqrt{\left(\left(\left(2 \cdot n\right) \cdot U\right) \cdot 1\right) \cdot \color{blue}{\left(t - \frac{\ell}{Om} \cdot \left(\ell \cdot 2 - \left(-\left(U - U*\right) \cdot \left(\frac{\ell}{Om} \cdot n\right)\right)\right)\right)}}\]
    6. Taylor expanded around -inf 49.3

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

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

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

Reproduce

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