Average Error: 10.7 → 10.7
Time: 21.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)\]
\[\sin^{-1} \left(\sqrt{\frac{1}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} - \frac{{\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}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}} - \frac{{\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 r53612 = 1.0;
        double r53613 = Om;
        double r53614 = Omc;
        double r53615 = r53613 / r53614;
        double r53616 = 2.0;
        double r53617 = pow(r53615, r53616);
        double r53618 = r53612 - r53617;
        double r53619 = t;
        double r53620 = l;
        double r53621 = r53619 / r53620;
        double r53622 = pow(r53621, r53616);
        double r53623 = r53616 * r53622;
        double r53624 = r53612 + r53623;
        double r53625 = r53618 / r53624;
        double r53626 = sqrt(r53625);
        double r53627 = asin(r53626);
        return r53627;
}

double f(double t, double l, double Om, double Omc) {
        double r53628 = 1.0;
        double r53629 = 2.0;
        double r53630 = t;
        double r53631 = l;
        double r53632 = r53630 / r53631;
        double r53633 = pow(r53632, r53629);
        double r53634 = r53629 * r53633;
        double r53635 = r53628 + r53634;
        double r53636 = r53628 / r53635;
        double r53637 = Om;
        double r53638 = Omc;
        double r53639 = r53637 / r53638;
        double r53640 = pow(r53639, r53629);
        double r53641 = r53640 / r53635;
        double r53642 = r53636 - r53641;
        double r53643 = sqrt(r53642);
        double r53644 = asin(r53643);
        return r53644;
}

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.7

    \[\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\]
  2. Using strategy rm
  3. Applied div-sub10.7

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

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

Reproduce

herbie shell --seed 2019291 
(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)))))))