Average Error: 34.6 → 29.5
Time: 1.1m
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 1.0804843749242058 \cdot 10^{121}:\\ \;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{\left(2 \cdot n\right) \cdot U} \cdot \sqrt{t - \mathsf{fma}\left(n, {\left(\frac{\ell}{Om}\right)}^{\left(2 \cdot \frac{2}{2}\right)} \cdot \left(U - U*\right), \frac{\ell}{\frac{Om}{\ell}} \cdot 2\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 1.0804843749242058 \cdot 10^{121}:\\
\;\;\;\;\sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(\left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(U - U*\right)\right)}\\

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

\end{array}
double f(double n, double U, double t, double l, double Om, double U_) {
        double r197786 = 2.0;
        double r197787 = n;
        double r197788 = r197786 * r197787;
        double r197789 = U;
        double r197790 = r197788 * r197789;
        double r197791 = t;
        double r197792 = l;
        double r197793 = r197792 * r197792;
        double r197794 = Om;
        double r197795 = r197793 / r197794;
        double r197796 = r197786 * r197795;
        double r197797 = r197791 - r197796;
        double r197798 = r197792 / r197794;
        double r197799 = pow(r197798, r197786);
        double r197800 = r197787 * r197799;
        double r197801 = U_;
        double r197802 = r197789 - r197801;
        double r197803 = r197800 * r197802;
        double r197804 = r197797 - r197803;
        double r197805 = r197790 * r197804;
        double r197806 = sqrt(r197805);
        return r197806;
}

double f(double n, double U, double t, double l, double Om, double U_) {
        double r197807 = t;
        double r197808 = 1.0804843749242058e+121;
        bool r197809 = r197807 <= r197808;
        double r197810 = 2.0;
        double r197811 = n;
        double r197812 = r197810 * r197811;
        double r197813 = U;
        double r197814 = r197812 * r197813;
        double r197815 = l;
        double r197816 = Om;
        double r197817 = r197816 / r197815;
        double r197818 = r197815 / r197817;
        double r197819 = r197810 * r197818;
        double r197820 = r197807 - r197819;
        double r197821 = r197815 / r197816;
        double r197822 = 2.0;
        double r197823 = r197810 / r197822;
        double r197824 = pow(r197821, r197823);
        double r197825 = r197811 * r197824;
        double r197826 = r197825 * r197824;
        double r197827 = U_;
        double r197828 = r197813 - r197827;
        double r197829 = r197826 * r197828;
        double r197830 = r197820 - r197829;
        double r197831 = r197814 * r197830;
        double r197832 = sqrt(r197831);
        double r197833 = sqrt(r197814);
        double r197834 = r197822 * r197823;
        double r197835 = pow(r197821, r197834);
        double r197836 = r197835 * r197828;
        double r197837 = r197818 * r197810;
        double r197838 = fma(r197811, r197836, r197837);
        double r197839 = r197807 - r197838;
        double r197840 = sqrt(r197839);
        double r197841 = r197833 * r197840;
        double r197842 = r197809 ? r197832 : r197841;
        return r197842;
}

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 t < 1.0804843749242058e+121

    1. Initial program 34.1

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

      \[\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 sqr-pow31.4

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

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

    if 1.0804843749242058e+121 < t

    1. Initial program 36.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.6

      \[\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 sqr-pow34.6

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

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

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

      \[\leadsto \sqrt{\left(\left(2 \cdot n\right) \cdot U\right) \cdot \left(\left(t - 2 \cdot \frac{\ell}{\frac{Om}{\ell}}\right) - \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right) \cdot \color{blue}{\left(\left(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right)}\right)}\]
    10. Using strategy rm
    11. Applied sqrt-prod23.8

      \[\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)}^{\left(\frac{2}{2}\right)}\right) \cdot \left(\left(U - U*\right) \cdot {\left(\frac{\ell}{Om}\right)}^{\left(\frac{2}{2}\right)}\right)}}\]
    12. Simplified24.6

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

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

Reproduce

herbie shell --seed 2019195 +o rules:numerics
(FPCore (n U t l Om U*)
  :name "Toniolo and Linder, Equation (13)"
  (sqrt (* (* (* 2.0 n) U) (- (- t (* 2.0 (/ (* l l) Om))) (* (* n (pow (/ l Om) 2.0)) (- U U*))))))