Average Error: 32.9 → 28.2
Time: 40.9s
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 r1408259 = 2.0;
        double r1408260 = n;
        double r1408261 = r1408259 * r1408260;
        double r1408262 = U;
        double r1408263 = r1408261 * r1408262;
        double r1408264 = t;
        double r1408265 = l;
        double r1408266 = r1408265 * r1408265;
        double r1408267 = Om;
        double r1408268 = r1408266 / r1408267;
        double r1408269 = r1408259 * r1408268;
        double r1408270 = r1408264 - r1408269;
        double r1408271 = r1408265 / r1408267;
        double r1408272 = pow(r1408271, r1408259);
        double r1408273 = r1408260 * r1408272;
        double r1408274 = U_;
        double r1408275 = r1408262 - r1408274;
        double r1408276 = r1408273 * r1408275;
        double r1408277 = r1408270 - r1408276;
        double r1408278 = r1408263 * r1408277;
        double r1408279 = sqrt(r1408278);
        return r1408279;
}

double f(double n, double U, double t, double l, double Om, double U_) {
        double r1408280 = n;
        double r1408281 = -2.9078355181208308e-49;
        bool r1408282 = r1408280 <= r1408281;
        double r1408283 = t;
        double r1408284 = l;
        double r1408285 = Om;
        double r1408286 = r1408284 / r1408285;
        double r1408287 = 2.0;
        double r1408288 = r1408287 * r1408284;
        double r1408289 = r1408286 * r1408286;
        double r1408290 = r1408289 * r1408280;
        double r1408291 = U;
        double r1408292 = U_;
        double r1408293 = r1408291 - r1408292;
        double r1408294 = r1408290 * r1408293;
        double r1408295 = fma(r1408286, r1408288, r1408294);
        double r1408296 = r1408283 - r1408295;
        double r1408297 = r1408291 * r1408287;
        double r1408298 = r1408297 * r1408280;
        double r1408299 = r1408296 * r1408298;
        double r1408300 = sqrt(r1408299);
        double r1408301 = 8.345471985498696e-126;
        bool r1408302 = r1408280 <= r1408301;
        double r1408303 = r1408284 * r1408286;
        double r1408304 = r1408303 * r1408280;
        double r1408305 = r1408304 / r1408285;
        double r1408306 = r1408293 * r1408305;
        double r1408307 = fma(r1408286, r1408288, r1408306);
        double r1408308 = r1408283 - r1408307;
        double r1408309 = r1408280 * r1408308;
        double r1408310 = r1408297 * r1408309;
        double r1408311 = sqrt(r1408310);
        double r1408312 = r1408302 ? r1408311 : r1408300;
        double r1408313 = r1408282 ? r1408300 : r1408312;
        return r1408313;
}

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