Average Error: 10.3 → 10.3
Time: 50.3s
Precision: 64
\[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
\[\sin^{-1} \left(\sqrt{\frac{1}{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)} \cdot \left(1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}\right)}\right)\]
\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
\sin^{-1} \left(\sqrt{\frac{1}{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)} \cdot \left(1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}\right)}\right)
double f(double t, double l, double Om, double Omc) {
        double r2493790 = 1.0;
        double r2493791 = Om;
        double r2493792 = Omc;
        double r2493793 = r2493791 / r2493792;
        double r2493794 = 2.0;
        double r2493795 = pow(r2493793, r2493794);
        double r2493796 = r2493790 - r2493795;
        double r2493797 = t;
        double r2493798 = l;
        double r2493799 = r2493797 / r2493798;
        double r2493800 = pow(r2493799, r2493794);
        double r2493801 = r2493794 * r2493800;
        double r2493802 = r2493790 + r2493801;
        double r2493803 = r2493796 / r2493802;
        double r2493804 = sqrt(r2493803);
        double r2493805 = asin(r2493804);
        return r2493805;
}

double f(double t, double l, double Om, double Omc) {
        double r2493806 = 1.0;
        double r2493807 = t;
        double r2493808 = l;
        double r2493809 = r2493807 / r2493808;
        double r2493810 = r2493809 * r2493809;
        double r2493811 = 2.0;
        double r2493812 = fma(r2493810, r2493811, r2493806);
        double r2493813 = r2493806 / r2493812;
        double r2493814 = Om;
        double r2493815 = Omc;
        double r2493816 = r2493814 / r2493815;
        double r2493817 = r2493816 * r2493816;
        double r2493818 = r2493806 - r2493817;
        double r2493819 = r2493813 * r2493818;
        double r2493820 = sqrt(r2493819);
        double r2493821 = asin(r2493820);
        return r2493821;
}

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

Derivation

  1. Initial program 10.3

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

    \[\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-inv10.3

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

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

Reproduce

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