Average Error: 10.1 → 5.6
Time: 22.5s
Precision: 64
\[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
\[\begin{array}{l} \mathbf{if}\;\frac{t}{\ell} \le 8.946608318687243 \cdot 10^{+131}:\\ \;\;\;\;\sin^{-1} \left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\sqrt{\mathsf{fma}\left(\frac{t}{\ell} \cdot \frac{t}{\ell}, 2, 1\right)}}\right)\\ \mathbf{else}:\\ \;\;\;\;\sin^{-1} \left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\frac{t \cdot \sqrt{2}}{\ell}}\right)\\ \end{array}\]
\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
\begin{array}{l}
\mathbf{if}\;\frac{t}{\ell} \le 8.946608318687243 \cdot 10^{+131}:\\
\;\;\;\;\sin^{-1} \left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\sqrt{\mathsf{fma}\left(\frac{t}{\ell} \cdot \frac{t}{\ell}, 2, 1\right)}}\right)\\

\mathbf{else}:\\
\;\;\;\;\sin^{-1} \left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\frac{t \cdot \sqrt{2}}{\ell}}\right)\\

\end{array}
double f(double t, double l, double Om, double Omc) {
        double r2047418 = 1.0;
        double r2047419 = Om;
        double r2047420 = Omc;
        double r2047421 = r2047419 / r2047420;
        double r2047422 = 2.0;
        double r2047423 = pow(r2047421, r2047422);
        double r2047424 = r2047418 - r2047423;
        double r2047425 = t;
        double r2047426 = l;
        double r2047427 = r2047425 / r2047426;
        double r2047428 = pow(r2047427, r2047422);
        double r2047429 = r2047422 * r2047428;
        double r2047430 = r2047418 + r2047429;
        double r2047431 = r2047424 / r2047430;
        double r2047432 = sqrt(r2047431);
        double r2047433 = asin(r2047432);
        return r2047433;
}

double f(double t, double l, double Om, double Omc) {
        double r2047434 = t;
        double r2047435 = l;
        double r2047436 = r2047434 / r2047435;
        double r2047437 = 8.946608318687243e+131;
        bool r2047438 = r2047436 <= r2047437;
        double r2047439 = 1.0;
        double r2047440 = Om;
        double r2047441 = Omc;
        double r2047442 = r2047440 / r2047441;
        double r2047443 = r2047442 * r2047442;
        double r2047444 = r2047439 - r2047443;
        double r2047445 = sqrt(r2047444);
        double r2047446 = r2047436 * r2047436;
        double r2047447 = 2.0;
        double r2047448 = fma(r2047446, r2047447, r2047439);
        double r2047449 = sqrt(r2047448);
        double r2047450 = r2047445 / r2047449;
        double r2047451 = asin(r2047450);
        double r2047452 = sqrt(r2047447);
        double r2047453 = r2047434 * r2047452;
        double r2047454 = r2047453 / r2047435;
        double r2047455 = r2047445 / r2047454;
        double r2047456 = asin(r2047455);
        double r2047457 = r2047438 ? r2047451 : r2047456;
        return r2047457;
}

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

Derivation

  1. Split input into 2 regimes
  2. if (/ t l) < 8.946608318687243e+131

    1. Initial program 6.5

      \[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
    2. Simplified6.5

      \[\leadsto \color{blue}{\sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(\frac{t}{\ell} \cdot \frac{t}{\ell}, 2, 1\right)}}\right)}\]
    3. Using strategy rm
    4. Applied sqrt-div6.5

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

    if 8.946608318687243e+131 < (/ t l)

    1. Initial program 29.9

      \[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
    2. Simplified29.9

      \[\leadsto \color{blue}{\sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(\frac{t}{\ell} \cdot \frac{t}{\ell}, 2, 1\right)}}\right)}\]
    3. Using strategy rm
    4. Applied sqrt-div29.9

      \[\leadsto \sin^{-1} \color{blue}{\left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\sqrt{\mathsf{fma}\left(\frac{t}{\ell} \cdot \frac{t}{\ell}, 2, 1\right)}}\right)}\]
    5. Taylor expanded around inf 0.9

      \[\leadsto \sin^{-1} \left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\color{blue}{\frac{t \cdot \sqrt{2}}{\ell}}}\right)\]
  3. Recombined 2 regimes into one program.
  4. Final simplification5.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{t}{\ell} \le 8.946608318687243 \cdot 10^{+131}:\\ \;\;\;\;\sin^{-1} \left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\sqrt{\mathsf{fma}\left(\frac{t}{\ell} \cdot \frac{t}{\ell}, 2, 1\right)}}\right)\\ \mathbf{else}:\\ \;\;\;\;\sin^{-1} \left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\frac{t \cdot \sqrt{2}}{\ell}}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019143 +o rules:numerics
(FPCore (t l Om Omc)
  :name "Toniolo and Linder, Equation (2)"
  (asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))