Average Error: 32.9 → 28.2
Time: 50.0s
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}\;n \le -2.9078355181208308 \cdot 10^{-49}:\\ \;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(\left(\frac{\ell}{Om}\right), \left(2 \cdot \ell\right), \left(\left(\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot n\right) \cdot \left(U - U*\right)\right)\right)\right) \cdot \left(\left(U \cdot 2\right) \cdot n\right)}\\ \mathbf{elif}\;n \le 8.345471985498696 \cdot 10^{-126}:\\ \;\;\;\;\sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \left(t - \mathsf{fma}\left(\left(\frac{\ell}{Om}\right), \left(2 \cdot \ell\right), \left(\left(U - U*\right) \cdot \frac{\left(\ell \cdot \frac{\ell}{Om}\right) \cdot n}{Om}\right)\right)\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(\left(\frac{\ell}{Om}\right), \left(2 \cdot \ell\right), \left(\left(\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot n\right) \cdot \left(U - U*\right)\right)\right)\right) \cdot \left(\left(U \cdot 2\right) \cdot n\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}\;n \le -2.9078355181208308 \cdot 10^{-49}:\\
\;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(\left(\frac{\ell}{Om}\right), \left(2 \cdot \ell\right), \left(\left(\left(\frac{\ell}{Om} \cdot \frac{\ell}{Om}\right) \cdot n\right) \cdot \left(U - U*\right)\right)\right)\right) \cdot \left(\left(U \cdot 2\right) \cdot n\right)}\\

\mathbf{elif}\;n \le 8.345471985498696 \cdot 10^{-126}:\\
\;\;\;\;\sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \left(t - \mathsf{fma}\left(\left(\frac{\ell}{Om}\right), \left(2 \cdot \ell\right), \left(\left(U - U*\right) \cdot \frac{\left(\ell \cdot \frac{\ell}{Om}\right) \cdot n}{Om}\right)\right)\right)\right)}\\

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

\end{array}
double f(double n, double U, double t, double l, double Om, double U_) {
        double r2220748 = 2.0;
        double r2220749 = n;
        double r2220750 = r2220748 * r2220749;
        double r2220751 = U;
        double r2220752 = r2220750 * r2220751;
        double r2220753 = t;
        double r2220754 = l;
        double r2220755 = r2220754 * r2220754;
        double r2220756 = Om;
        double r2220757 = r2220755 / r2220756;
        double r2220758 = r2220748 * r2220757;
        double r2220759 = r2220753 - r2220758;
        double r2220760 = r2220754 / r2220756;
        double r2220761 = pow(r2220760, r2220748);
        double r2220762 = r2220749 * r2220761;
        double r2220763 = U_;
        double r2220764 = r2220751 - r2220763;
        double r2220765 = r2220762 * r2220764;
        double r2220766 = r2220759 - r2220765;
        double r2220767 = r2220752 * r2220766;
        double r2220768 = sqrt(r2220767);
        return r2220768;
}

double f(double n, double U, double t, double l, double Om, double U_) {
        double r2220769 = n;
        double r2220770 = -2.9078355181208308e-49;
        bool r2220771 = r2220769 <= r2220770;
        double r2220772 = t;
        double r2220773 = l;
        double r2220774 = Om;
        double r2220775 = r2220773 / r2220774;
        double r2220776 = 2.0;
        double r2220777 = r2220776 * r2220773;
        double r2220778 = r2220775 * r2220775;
        double r2220779 = r2220778 * r2220769;
        double r2220780 = U;
        double r2220781 = U_;
        double r2220782 = r2220780 - r2220781;
        double r2220783 = r2220779 * r2220782;
        double r2220784 = fma(r2220775, r2220777, r2220783);
        double r2220785 = r2220772 - r2220784;
        double r2220786 = r2220780 * r2220776;
        double r2220787 = r2220786 * r2220769;
        double r2220788 = r2220785 * r2220787;
        double r2220789 = sqrt(r2220788);
        double r2220790 = 8.345471985498696e-126;
        bool r2220791 = r2220769 <= r2220790;
        double r2220792 = r2220773 * r2220775;
        double r2220793 = r2220792 * r2220769;
        double r2220794 = r2220793 / r2220774;
        double r2220795 = r2220782 * r2220794;
        double r2220796 = fma(r2220775, r2220777, r2220795);
        double r2220797 = r2220772 - r2220796;
        double r2220798 = r2220769 * r2220797;
        double r2220799 = r2220786 * r2220798;
        double r2220800 = sqrt(r2220799);
        double r2220801 = r2220791 ? r2220800 : r2220789;
        double r2220802 = r2220771 ? r2220789 : r2220801;
        return r2220802;
}

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 n < -2.9078355181208308e-49 or 8.345471985498696e-126 < n

    1. Initial program 30.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. Simplified31.5

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

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

    if -2.9078355181208308e-49 < n < 8.345471985498696e-126

    1. Initial program 35.7

      \[\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. Simplified29.3

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

      \[\leadsto \sqrt{\left(U \cdot 2\right) \cdot \left(n \cdot \left(t - \mathsf{fma}\left(\left(\frac{\ell}{Om}\right), \left(2 \cdot \ell\right), \left(\left(n \cdot \color{blue}{\frac{\frac{\ell}{Om} \cdot \ell}{Om}}\right) \cdot \left(U - U*\right)\right)\right)\right)\right)}\]
    5. Applied associate-*r/28.3

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

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

Reproduce

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