\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;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.7
rmApplied div-sub10.7
Final simplification10.7
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)))))))