\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(\left|\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right|\right)double f(double t, double l, double Om, double Omc) {
double r72091 = 1.0;
double r72092 = Om;
double r72093 = Omc;
double r72094 = r72092 / r72093;
double r72095 = 2.0;
double r72096 = pow(r72094, r72095);
double r72097 = r72091 - r72096;
double r72098 = t;
double r72099 = l;
double r72100 = r72098 / r72099;
double r72101 = pow(r72100, r72095);
double r72102 = r72095 * r72101;
double r72103 = r72091 + r72102;
double r72104 = r72097 / r72103;
double r72105 = sqrt(r72104);
double r72106 = asin(r72105);
return r72106;
}
double f(double t, double l, double Om, double Omc) {
double r72107 = 1.0;
double r72108 = Om;
double r72109 = Omc;
double r72110 = r72108 / r72109;
double r72111 = 2.0;
double r72112 = pow(r72110, r72111);
double r72113 = r72107 - r72112;
double r72114 = sqrt(r72113);
double r72115 = t;
double r72116 = l;
double r72117 = r72115 / r72116;
double r72118 = pow(r72117, r72111);
double r72119 = r72111 * r72118;
double r72120 = r72107 + r72119;
double r72121 = sqrt(r72120);
double r72122 = r72114 / r72121;
double r72123 = fabs(r72122);
double r72124 = asin(r72123);
return r72124;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.9
rmApplied add-sqr-sqrt10.9
Applied add-sqr-sqrt10.9
Applied times-frac10.9
Applied rem-sqrt-square10.9
Final simplification10.9
herbie shell --seed 2020020
(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)))))))