Average Error: 10.1 → 10.1
Time: 1.6m
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 r4976585 = 1.0;
        double r4976586 = Om;
        double r4976587 = Omc;
        double r4976588 = r4976586 / r4976587;
        double r4976589 = 2.0;
        double r4976590 = pow(r4976588, r4976589);
        double r4976591 = r4976585 - r4976590;
        double r4976592 = t;
        double r4976593 = l;
        double r4976594 = r4976592 / r4976593;
        double r4976595 = pow(r4976594, r4976589);
        double r4976596 = r4976589 * r4976595;
        double r4976597 = r4976585 + r4976596;
        double r4976598 = r4976591 / r4976597;
        double r4976599 = sqrt(r4976598);
        double r4976600 = asin(r4976599);
        return r4976600;
}

double f(double t, double l, double Om, double Omc) {
        double r4976601 = 1.0;
        double r4976602 = Om;
        double r4976603 = Omc;
        double r4976604 = r4976602 / r4976603;
        double r4976605 = r4976604 * r4976604;
        double r4976606 = exp(r4976605);
        double r4976607 = log(r4976606);
        double r4976608 = r4976601 - r4976607;
        double r4976609 = t;
        double r4976610 = l;
        double r4976611 = r4976609 / r4976610;
        double r4976612 = r4976611 * r4976611;
        double r4976613 = 2.0;
        double r4976614 = r4976612 * r4976613;
        double r4976615 = r4976614 + r4976601;
        double r4976616 = r4976608 / r4976615;
        double r4976617 = sqrt(r4976616);
        double r4976618 = asin(r4976617);
        return r4976618;
}

\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}}{1 + 2 \cdot \left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right)}}\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)}}{1 + 2 \cdot \left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right)}}\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 
(FPCore (t l Om Omc)
  :name "Toniolo and Linder, Equation (2)"
  (asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))