Average Error: 10.1 → 1.7
Time: 26.7s
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 -3.916798096582946 \cdot 10^{+111}:\\ \;\;\;\;\sin^{-1} \left(\left|\frac{\sqrt{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}}{\frac{\sqrt{2} \cdot t}{\ell}}\right|\right)\\ \mathbf{elif}\;\frac{t}{\ell} \le 3.640923865110079 \cdot 10^{+97}:\\ \;\;\;\;\sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(\left(t \cdot \frac{\frac{t}{\ell}}{\ell}\right), 2, 1\right)}}\right)\\ \mathbf{else}:\\ \;\;\;\;\sin^{-1} \left(\left|\frac{\sqrt{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}}{\frac{\sqrt{2} \cdot t}{\ell}}\right|\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 -3.916798096582946 \cdot 10^{+111}:\\
\;\;\;\;\sin^{-1} \left(\left|\frac{\sqrt{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}}{\frac{\sqrt{2} \cdot t}{\ell}}\right|\right)\\

\mathbf{elif}\;\frac{t}{\ell} \le 3.640923865110079 \cdot 10^{+97}:\\
\;\;\;\;\sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(\left(t \cdot \frac{\frac{t}{\ell}}{\ell}\right), 2, 1\right)}}\right)\\

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

\end{array}
double f(double t, double l, double Om, double Omc) {
        double r1693065 = 1.0;
        double r1693066 = Om;
        double r1693067 = Omc;
        double r1693068 = r1693066 / r1693067;
        double r1693069 = 2.0;
        double r1693070 = pow(r1693068, r1693069);
        double r1693071 = r1693065 - r1693070;
        double r1693072 = t;
        double r1693073 = l;
        double r1693074 = r1693072 / r1693073;
        double r1693075 = pow(r1693074, r1693069);
        double r1693076 = r1693069 * r1693075;
        double r1693077 = r1693065 + r1693076;
        double r1693078 = r1693071 / r1693077;
        double r1693079 = sqrt(r1693078);
        double r1693080 = asin(r1693079);
        return r1693080;
}

double f(double t, double l, double Om, double Omc) {
        double r1693081 = t;
        double r1693082 = l;
        double r1693083 = r1693081 / r1693082;
        double r1693084 = -3.916798096582946e+111;
        bool r1693085 = r1693083 <= r1693084;
        double r1693086 = 1.0;
        double r1693087 = Om;
        double r1693088 = Omc;
        double r1693089 = r1693087 / r1693088;
        double r1693090 = r1693089 * r1693089;
        double r1693091 = exp(r1693090);
        double r1693092 = log(r1693091);
        double r1693093 = r1693086 - r1693092;
        double r1693094 = sqrt(r1693093);
        double r1693095 = 2.0;
        double r1693096 = sqrt(r1693095);
        double r1693097 = r1693096 * r1693081;
        double r1693098 = r1693097 / r1693082;
        double r1693099 = r1693094 / r1693098;
        double r1693100 = fabs(r1693099);
        double r1693101 = asin(r1693100);
        double r1693102 = 3.640923865110079e+97;
        bool r1693103 = r1693083 <= r1693102;
        double r1693104 = r1693086 - r1693090;
        double r1693105 = r1693083 / r1693082;
        double r1693106 = r1693081 * r1693105;
        double r1693107 = fma(r1693106, r1693095, r1693086);
        double r1693108 = r1693104 / r1693107;
        double r1693109 = sqrt(r1693108);
        double r1693110 = asin(r1693109);
        double r1693111 = r1693103 ? r1693110 : r1693101;
        double r1693112 = r1693085 ? r1693101 : r1693111;
        return r1693112;
}

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) < -3.916798096582946e+111 or 3.640923865110079e+97 < (/ t l)

    1. Initial program 27.7

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

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

      \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \color{blue}{\log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}}{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)}}\right)\]
    5. Using strategy rm
    6. Applied add-sqr-sqrt27.7

      \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}{\color{blue}{\sqrt{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)} \cdot \sqrt{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)}}}}\right)\]
    7. Applied add-sqr-sqrt27.7

      \[\leadsto \sin^{-1} \left(\sqrt{\frac{\color{blue}{\sqrt{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)} \cdot \sqrt{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}}}{\sqrt{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)} \cdot \sqrt{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)}}}\right)\]
    8. Applied times-frac27.7

      \[\leadsto \sin^{-1} \left(\sqrt{\color{blue}{\frac{\sqrt{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}}{\sqrt{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)}} \cdot \frac{\sqrt{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}}{\sqrt{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)}}}}\right)\]
    9. Applied rem-sqrt-square27.7

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

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

    if -3.916798096582946e+111 < (/ t l) < 3.640923865110079e+97

    1. Initial program 0.9

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

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

      \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(\left(\color{blue}{\left(t \cdot \frac{1}{\ell}\right)} \cdot \frac{t}{\ell}\right), 2, 1\right)}}\right)\]
    5. Applied associate-*l*2.0

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{t}{\ell} \le -3.916798096582946 \cdot 10^{+111}:\\ \;\;\;\;\sin^{-1} \left(\left|\frac{\sqrt{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}}{\frac{\sqrt{2} \cdot t}{\ell}}\right|\right)\\ \mathbf{elif}\;\frac{t}{\ell} \le 3.640923865110079 \cdot 10^{+97}:\\ \;\;\;\;\sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\mathsf{fma}\left(\left(t \cdot \frac{\frac{t}{\ell}}{\ell}\right), 2, 1\right)}}\right)\\ \mathbf{else}:\\ \;\;\;\;\sin^{-1} \left(\left|\frac{\sqrt{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}}{\frac{\sqrt{2} \cdot t}{\ell}}\right|\right)\\ \end{array}\]

Reproduce

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