Average Error: 10.5 → 10.5
Time: 8.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)\]
\[\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 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)
double f(double t, double l, double Om, double Omc) {
        double r71672 = 1.0;
        double r71673 = Om;
        double r71674 = Omc;
        double r71675 = r71673 / r71674;
        double r71676 = 2.0;
        double r71677 = pow(r71675, r71676);
        double r71678 = r71672 - r71677;
        double r71679 = t;
        double r71680 = l;
        double r71681 = r71679 / r71680;
        double r71682 = pow(r71681, r71676);
        double r71683 = r71676 * r71682;
        double r71684 = r71672 + r71683;
        double r71685 = r71678 / r71684;
        double r71686 = sqrt(r71685);
        double r71687 = asin(r71686);
        return r71687;
}

double f(double t, double l, double Om, double Omc) {
        double r71688 = 1.0;
        double r71689 = Om;
        double r71690 = Omc;
        double r71691 = r71689 / r71690;
        double r71692 = 2.0;
        double r71693 = pow(r71691, r71692);
        double r71694 = r71688 - r71693;
        double r71695 = t;
        double r71696 = l;
        double r71697 = r71695 / r71696;
        double r71698 = pow(r71697, r71692);
        double r71699 = r71692 * r71698;
        double r71700 = r71688 + r71699;
        double r71701 = r71694 / r71700;
        double r71702 = sqrt(r71701);
        double r71703 = asin(r71702);
        return r71703;
}

Error

Bits error versus t

Bits error versus l

Bits error versus Om

Bits error versus Omc

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 10.5

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

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

Reproduce

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