\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(\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)double f(double t, double l, double Om, double Omc) {
double r70255 = 1.0;
double r70256 = Om;
double r70257 = Omc;
double r70258 = r70256 / r70257;
double r70259 = 2.0;
double r70260 = pow(r70258, r70259);
double r70261 = r70255 - r70260;
double r70262 = t;
double r70263 = l;
double r70264 = r70262 / r70263;
double r70265 = pow(r70264, r70259);
double r70266 = r70259 * r70265;
double r70267 = r70255 + r70266;
double r70268 = r70261 / r70267;
double r70269 = sqrt(r70268);
double r70270 = asin(r70269);
return r70270;
}
double f(double t, double l, double Om, double Omc) {
double r70271 = 1.0;
double r70272 = Om;
double r70273 = Omc;
double r70274 = r70272 / r70273;
double r70275 = 2.0;
double r70276 = pow(r70274, r70275);
double r70277 = r70271 - r70276;
double r70278 = sqrt(r70277);
double r70279 = t;
double r70280 = l;
double r70281 = r70279 / r70280;
double r70282 = pow(r70281, r70275);
double r70283 = r70275 * r70282;
double r70284 = r70271 + r70283;
double r70285 = sqrt(r70284);
double r70286 = r70278 / r70285;
double r70287 = asin(r70286);
return r70287;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.9
rmApplied sqrt-div10.9
Final simplification10.9
herbie shell --seed 2020020 +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)))))))