\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 - e^{\log \left({\left(\frac{Om}{Omc}\right)}^{2}\right)}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)double f(double t, double l, double Om, double Omc) {
double r65642 = 1.0;
double r65643 = Om;
double r65644 = Omc;
double r65645 = r65643 / r65644;
double r65646 = 2.0;
double r65647 = pow(r65645, r65646);
double r65648 = r65642 - r65647;
double r65649 = t;
double r65650 = l;
double r65651 = r65649 / r65650;
double r65652 = pow(r65651, r65646);
double r65653 = r65646 * r65652;
double r65654 = r65642 + r65653;
double r65655 = r65648 / r65654;
double r65656 = sqrt(r65655);
double r65657 = asin(r65656);
return r65657;
}
double f(double t, double l, double Om, double Omc) {
double r65658 = 1.0;
double r65659 = Om;
double r65660 = Omc;
double r65661 = r65659 / r65660;
double r65662 = 2.0;
double r65663 = pow(r65661, r65662);
double r65664 = log(r65663);
double r65665 = exp(r65664);
double r65666 = r65658 - r65665;
double r65667 = t;
double r65668 = l;
double r65669 = r65667 / r65668;
double r65670 = pow(r65669, r65662);
double r65671 = r65662 * r65670;
double r65672 = r65658 + r65671;
double r65673 = r65666 / r65672;
double r65674 = sqrt(r65673);
double r65675 = asin(r65674);
return r65675;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 9.9
rmApplied add-exp-log37.5
Applied add-exp-log50.7
Applied div-exp50.7
Applied pow-exp50.7
Simplified9.9
Final simplification9.9
herbie shell --seed 2020065 +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)))))))