\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 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)double f(double t, double l, double Om, double Omc) {
double r3150277 = 1.0;
double r3150278 = Om;
double r3150279 = Omc;
double r3150280 = r3150278 / r3150279;
double r3150281 = 2.0;
double r3150282 = pow(r3150280, r3150281);
double r3150283 = r3150277 - r3150282;
double r3150284 = t;
double r3150285 = l;
double r3150286 = r3150284 / r3150285;
double r3150287 = pow(r3150286, r3150281);
double r3150288 = r3150281 * r3150287;
double r3150289 = r3150277 + r3150288;
double r3150290 = r3150283 / r3150289;
double r3150291 = sqrt(r3150290);
double r3150292 = asin(r3150291);
return r3150292;
}
double f(double t, double l, double Om, double Omc) {
double r3150293 = 1.0;
double r3150294 = Om;
double r3150295 = Omc;
double r3150296 = r3150294 / r3150295;
double r3150297 = 2.0;
double r3150298 = pow(r3150296, r3150297);
double r3150299 = r3150293 - r3150298;
double r3150300 = t;
double r3150301 = l;
double r3150302 = r3150300 / r3150301;
double r3150303 = pow(r3150302, r3150297);
double r3150304 = r3150297 * r3150303;
double r3150305 = r3150293 + r3150304;
double r3150306 = r3150299 / r3150305;
double r3150307 = sqrt(r3150306);
double r3150308 = asin(r3150307);
return r3150308;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 9.8
Final simplification9.8
herbie shell --seed 2019172
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1.0 (pow (/ Om Omc) 2.0)) (+ 1.0 (* 2.0 (pow (/ t l) 2.0)))))))