\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 \cdot 1 - {\left(\frac{Om}{Omc}\right)}^{2} \cdot {\left(\frac{Om}{Omc}\right)}^{2}}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right) \cdot \left(1 + {\left(\frac{Om}{Omc}\right)}^{2}\right)}}\right)double f(double t, double l, double Om, double Omc) {
double r72696 = 1.0;
double r72697 = Om;
double r72698 = Omc;
double r72699 = r72697 / r72698;
double r72700 = 2.0;
double r72701 = pow(r72699, r72700);
double r72702 = r72696 - r72701;
double r72703 = t;
double r72704 = l;
double r72705 = r72703 / r72704;
double r72706 = pow(r72705, r72700);
double r72707 = r72700 * r72706;
double r72708 = r72696 + r72707;
double r72709 = r72702 / r72708;
double r72710 = sqrt(r72709);
double r72711 = asin(r72710);
return r72711;
}
double f(double t, double l, double Om, double Omc) {
double r72712 = 1.0;
double r72713 = r72712 * r72712;
double r72714 = Om;
double r72715 = Omc;
double r72716 = r72714 / r72715;
double r72717 = 2.0;
double r72718 = pow(r72716, r72717);
double r72719 = r72718 * r72718;
double r72720 = r72713 - r72719;
double r72721 = t;
double r72722 = l;
double r72723 = r72721 / r72722;
double r72724 = pow(r72723, r72717);
double r72725 = r72717 * r72724;
double r72726 = r72712 + r72725;
double r72727 = r72712 + r72718;
double r72728 = r72726 * r72727;
double r72729 = r72720 / r72728;
double r72730 = sqrt(r72729);
double r72731 = asin(r72730);
return r72731;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.1
rmApplied flip--10.1
Applied associate-/l/10.1
Final simplification10.1
herbie shell --seed 2020035
(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)))))))