\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(\sqrt{{\left(\frac{t}{\ell}\right)}^{2}} \cdot \sqrt{{\left(\frac{t}{\ell}\right)}^{2}}\right)}}\right)double f(double t, double l, double Om, double Omc) {
double r60235 = 1.0;
double r60236 = Om;
double r60237 = Omc;
double r60238 = r60236 / r60237;
double r60239 = 2.0;
double r60240 = pow(r60238, r60239);
double r60241 = r60235 - r60240;
double r60242 = t;
double r60243 = l;
double r60244 = r60242 / r60243;
double r60245 = pow(r60244, r60239);
double r60246 = r60239 * r60245;
double r60247 = r60235 + r60246;
double r60248 = r60241 / r60247;
double r60249 = sqrt(r60248);
double r60250 = asin(r60249);
return r60250;
}
double f(double t, double l, double Om, double Omc) {
double r60251 = 1.0;
double r60252 = Om;
double r60253 = Omc;
double r60254 = r60252 / r60253;
double r60255 = 2.0;
double r60256 = pow(r60254, r60255);
double r60257 = r60251 - r60256;
double r60258 = sqrt(r60257);
double r60259 = t;
double r60260 = l;
double r60261 = r60259 / r60260;
double r60262 = pow(r60261, r60255);
double r60263 = sqrt(r60262);
double r60264 = r60263 * r60263;
double r60265 = r60255 * r60264;
double r60266 = r60251 + r60265;
double r60267 = sqrt(r60266);
double r60268 = r60258 / r60267;
double r60269 = asin(r60268);
return r60269;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.3
rmApplied sqrt-div10.3
rmApplied add-sqr-sqrt10.3
Final simplification10.3
herbie shell --seed 2019356
(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)))))))