Average Error: 33.8 → 26.6
Time: 1.3m
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 r7443516 = 2.0;
        double r7443517 = n;
        double r7443518 = r7443516 * r7443517;
        double r7443519 = U;
        double r7443520 = r7443518 * r7443519;
        double r7443521 = t;
        double r7443522 = l;
        double r7443523 = r7443522 * r7443522;
        double r7443524 = Om;
        double r7443525 = r7443523 / r7443524;
        double r7443526 = r7443516 * r7443525;
        double r7443527 = r7443521 - r7443526;
        double r7443528 = r7443522 / r7443524;
        double r7443529 = pow(r7443528, r7443516);
        double r7443530 = r7443517 * r7443529;
        double r7443531 = U_;
        double r7443532 = r7443519 - r7443531;
        double r7443533 = r7443530 * r7443532;
        double r7443534 = r7443527 - r7443533;
        double r7443535 = r7443520 * r7443534;
        double r7443536 = sqrt(r7443535);
        return r7443536;
}

double f(double n, double U, double t, double l, double Om, double U_) {
        double r7443537 = U;
        double r7443538 = -6.41106705850068e-128;
        bool r7443539 = r7443537 <= r7443538;
        double r7443540 = 2.0;
        double r7443541 = n;
        double r7443542 = l;
        double r7443543 = Om;
        double r7443544 = r7443542 / r7443543;
        double r7443545 = r7443541 * r7443544;
        double r7443546 = r7443537 * r7443545;
        double r7443547 = -2.0;
        double r7443548 = r7443542 * r7443547;
        double r7443549 = U_;
        double r7443550 = r7443537 - r7443549;
        double r7443551 = r7443545 * r7443550;
        double r7443552 = r7443548 - r7443551;
        double r7443553 = r7443546 * r7443552;
        double r7443554 = r7443540 * r7443553;
        double r7443555 = t;
        double r7443556 = r7443540 * r7443541;
        double r7443557 = r7443537 * r7443556;
        double r7443558 = r7443555 * r7443557;
        double r7443559 = r7443554 + r7443558;
        double r7443560 = 0.5;
        double r7443561 = pow(r7443559, r7443560);
        double r7443562 = -7.711065449836014e-243;
        bool r7443563 = r7443537 <= r7443562;
        double r7443564 = r7443541 * r7443542;
        double r7443565 = r7443543 / r7443564;
        double r7443566 = r7443565 * r7443565;
        double r7443567 = r7443566 / r7443549;
        double r7443568 = r7443537 / r7443567;
        double r7443569 = -r7443537;
        double r7443570 = r7443537 * r7443569;
        double r7443571 = r7443570 / r7443566;
        double r7443572 = r7443568 + r7443571;
        double r7443573 = r7443555 * r7443537;
        double r7443574 = r7443541 * r7443573;
        double r7443575 = r7443572 + r7443574;
        double r7443576 = r7443540 * r7443575;
        double r7443577 = sqrt(r7443576);
        double r7443578 = r7443563 ? r7443577 : r7443561;
        double r7443579 = r7443539 ? r7443561 : r7443578;
        return r7443579;
}

\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*))))))