Average Error: 10.1 → 10.1
Time: 58.6s
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 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}{(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 1)_*}}\right)\]
double f(double t, double l, double Om, double Omc) {
        double r4522674 = 1.0;
        double r4522675 = Om;
        double r4522676 = Omc;
        double r4522677 = r4522675 / r4522676;
        double r4522678 = 2.0;
        double r4522679 = pow(r4522677, r4522678);
        double r4522680 = r4522674 - r4522679;
        double r4522681 = t;
        double r4522682 = l;
        double r4522683 = r4522681 / r4522682;
        double r4522684 = pow(r4522683, r4522678);
        double r4522685 = r4522678 * r4522684;
        double r4522686 = r4522674 + r4522685;
        double r4522687 = r4522680 / r4522686;
        double r4522688 = sqrt(r4522687);
        double r4522689 = asin(r4522688);
        return r4522689;
}

double f(double t, double l, double Om, double Omc) {
        double r4522690 = 1.0;
        double r4522691 = Om;
        double r4522692 = Omc;
        double r4522693 = r4522691 / r4522692;
        double r4522694 = r4522693 * r4522693;
        double r4522695 = exp(r4522694);
        double r4522696 = log(r4522695);
        double r4522697 = r4522690 - r4522696;
        double r4522698 = t;
        double r4522699 = l;
        double r4522700 = r4522698 / r4522699;
        double r4522701 = r4522700 * r4522700;
        double r4522702 = 2.0;
        double r4522703 = fma(r4522701, r4522702, r4522690);
        double r4522704 = r4522697 / r4522703;
        double r4522705 = sqrt(r4522704);
        double r4522706 = asin(r4522705);
        return r4522706;
}

\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 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}{(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 1)_*}}\right)

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

Derivation

  1. Initial program 10.1

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

    \[\leadsto \color{blue}{\sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 1)_*}}\right)}\]
  3. Using strategy rm
  4. Applied add-log-exp10.1

    \[\leadsto \sin^{-1} \left(\sqrt{\frac{1 - \color{blue}{\log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}}{(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 1)_*}}\right)\]
  5. Final simplification10.1

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

Reproduce

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