Average Error: 34.7 → 30.5
Time: 34.8s
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}\;t \le 5.921596680002772760806493524139888367658 \cdot 10^{-305} \lor \neg \left(t \le 1.070028174441901986804731946878056420476 \cdot 10^{-172} \lor \neg \left(t \le 2.724465956200713647886827411142398031389 \cdot 10^{192}\right)\right):\\ \;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)}\\ \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}\;t \le 5.921596680002772760806493524139888367658 \cdot 10^{-305} \lor \neg \left(t \le 1.070028174441901986804731946878056420476 \cdot 10^{-172} \lor \neg \left(t \le 2.724465956200713647886827411142398031389 \cdot 10^{192}\right)\right):\\
\;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}\\

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

\end{array}
double f(double n, double U, double t, double l, double Om, double U_) {
        double r198530 = 2.0;
        double r198531 = n;
        double r198532 = r198530 * r198531;
        double r198533 = U;
        double r198534 = r198532 * r198533;
        double r198535 = t;
        double r198536 = l;
        double r198537 = r198536 * r198536;
        double r198538 = Om;
        double r198539 = r198537 / r198538;
        double r198540 = r198530 * r198539;
        double r198541 = r198535 - r198540;
        double r198542 = r198536 / r198538;
        double r198543 = pow(r198542, r198530);
        double r198544 = r198531 * r198543;
        double r198545 = U_;
        double r198546 = r198533 - r198545;
        double r198547 = r198544 * r198546;
        double r198548 = r198541 - r198547;
        double r198549 = r198534 * r198548;
        double r198550 = sqrt(r198549);
        return r198550;
}

double f(double n, double U, double t, double l, double Om, double U_) {
        double r198551 = t;
        double r198552 = 5.921596680002773e-305;
        bool r198553 = r198551 <= r198552;
        double r198554 = 1.070028174441902e-172;
        bool r198555 = r198551 <= r198554;
        double r198556 = 2.7244659562007136e+192;
        bool r198557 = r198551 <= r198556;
        double r198558 = !r198557;
        bool r198559 = r198555 || r198558;
        double r198560 = !r198559;
        bool r198561 = r198553 || r198560;
        double r198562 = 2.0;
        double r198563 = n;
        double r198564 = r198562 * r198563;
        double r198565 = U;
        double r198566 = l;
        double r198567 = Om;
        double r198568 = r198567 / r198566;
        double r198569 = r198566 / r198568;
        double r198570 = r198562 * r198569;
        double r198571 = r198551 - r198570;
        double r198572 = r198566 / r198567;
        double r198573 = pow(r198572, r198562);
        double r198574 = r198563 * r198573;
        double r198575 = U_;
        double r198576 = r198565 - r198575;
        double r198577 = r198574 * r198576;
        double r198578 = r198571 - r198577;
        double r198579 = r198565 * r198578;
        double r198580 = r198564 * r198579;
        double r198581 = sqrt(r198580);
        double r198582 = r198564 * r198565;
        double r198583 = sqrt(r198582);
        double r198584 = sqrt(r198578);
        double r198585 = r198583 * r198584;
        double r198586 = r198561 ? r198581 : r198585;
        return r198586;
}

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 t < 5.921596680002773e-305 or 1.070028174441902e-172 < t < 2.7244659562007136e+192

    1. Initial program 33.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. Using strategy rm
    3. Applied associate-/l*31.2

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

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

    if 5.921596680002773e-305 < t < 1.070028174441902e-172 or 2.7244659562007136e+192 < t

    1. Initial program 37.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. Using strategy rm
    3. Applied associate-/l*34.5

      \[\leadsto \sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \color{blue}{\frac{\ell}{\frac{Om}{\ell}}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)}\]
    4. Using strategy rm
    5. Applied sqrt-prod28.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le 5.921596680002772760806493524139888367658 \cdot 10^{-305} \lor \neg \left(t \le 1.070028174441901986804731946878056420476 \cdot 10^{-172} \lor \neg \left(t \le 2.724465956200713647886827411142398031389 \cdot 10^{192}\right)\right):\\ \;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot \left(U \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019353 
(FPCore (n U t l Om U*)
  :name "Toniolo and Linder, Equation (13)"
  :precision binary64
  (sqrt (* (* (* 2 n) U) (- (- t (* 2 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2)) (- U U*))))))