Average Error: 34.8 → 30.6
Time: 43.6s
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 3322031569387475435520:\\ \;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(2, \ell \cdot \frac{\ell}{Om}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\ \mathbf{else}:\\ \;\;\;\;\sqrt{t - \mathsf{fma}\left(2, \frac{\ell}{\frac{Om}{\ell}}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)} \cdot \sqrt{\left(2 \cdot n\right) \cdot U}\\ \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 3322031569387475435520:\\
\;\;\;\;\sqrt{\left(t - \mathsf{fma}\left(2, \ell \cdot \frac{\ell}{Om}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\\

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

\end{array}
double f(double n, double U, double t, double l, double Om, double U_) {
        double r99782 = 2.0;
        double r99783 = n;
        double r99784 = r99782 * r99783;
        double r99785 = U;
        double r99786 = r99784 * r99785;
        double r99787 = t;
        double r99788 = l;
        double r99789 = r99788 * r99788;
        double r99790 = Om;
        double r99791 = r99789 / r99790;
        double r99792 = r99782 * r99791;
        double r99793 = r99787 - r99792;
        double r99794 = r99788 / r99790;
        double r99795 = pow(r99794, r99782);
        double r99796 = r99783 * r99795;
        double r99797 = U_;
        double r99798 = r99785 - r99797;
        double r99799 = r99796 * r99798;
        double r99800 = r99793 - r99799;
        double r99801 = r99786 * r99800;
        double r99802 = sqrt(r99801);
        return r99802;
}

double f(double n, double U, double t, double l, double Om, double U_) {
        double r99803 = t;
        double r99804 = 3.3220315693874754e+21;
        bool r99805 = r99803 <= r99804;
        double r99806 = 2.0;
        double r99807 = l;
        double r99808 = Om;
        double r99809 = r99807 / r99808;
        double r99810 = r99807 * r99809;
        double r99811 = n;
        double r99812 = pow(r99809, r99806);
        double r99813 = r99811 * r99812;
        double r99814 = U;
        double r99815 = U_;
        double r99816 = r99814 - r99815;
        double r99817 = r99813 * r99816;
        double r99818 = fma(r99806, r99810, r99817);
        double r99819 = r99803 - r99818;
        double r99820 = r99806 * r99811;
        double r99821 = r99820 * r99814;
        double r99822 = r99819 * r99821;
        double r99823 = sqrt(r99822);
        double r99824 = r99808 / r99807;
        double r99825 = r99807 / r99824;
        double r99826 = fma(r99806, r99825, r99817);
        double r99827 = r99803 - r99826;
        double r99828 = sqrt(r99827);
        double r99829 = sqrt(r99821);
        double r99830 = r99828 * r99829;
        double r99831 = r99805 ? r99823 : r99830;
        return r99831;
}

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 < 3.3220315693874754e+21

    1. Initial program 34.4

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

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

      \[\leadsto \sqrt{\left(t - \mathsf{fma}\left(2, \frac{\ell \cdot \ell}{\color{blue}{1 \cdot Om}}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\]
    5. Applied times-frac31.7

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

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

    if 3.3220315693874754e+21 < t

    1. Initial program 35.8

      \[\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. Simplified35.8

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

      \[\leadsto \sqrt{\left(t - \mathsf{fma}\left(2, \color{blue}{\frac{\ell}{\frac{Om}{\ell}}}, \left(n \cdot {\left(\frac{\ell}{Om}\right)}^{2}\right) \cdot \left(U - U*\right)\right)\right) \cdot \left(\left(2 \cdot n\right) \cdot U\right)}\]
    5. Using strategy rm
    6. Applied sqrt-prod27.2

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

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

Reproduce

herbie shell --seed 2019326 +o rules:numerics
(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*))))))