\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{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right|\right)double f(double t, double l, double Om, double Omc) {
double r53382 = 1.0;
double r53383 = Om;
double r53384 = Omc;
double r53385 = r53383 / r53384;
double r53386 = 2.0;
double r53387 = pow(r53385, r53386);
double r53388 = r53382 - r53387;
double r53389 = t;
double r53390 = l;
double r53391 = r53389 / r53390;
double r53392 = pow(r53391, r53386);
double r53393 = r53386 * r53392;
double r53394 = r53382 + r53393;
double r53395 = r53388 / r53394;
double r53396 = sqrt(r53395);
double r53397 = asin(r53396);
return r53397;
}
double f(double t, double l, double Om, double Omc) {
double r53398 = 1.0;
double r53399 = Om;
double r53400 = Omc;
double r53401 = r53399 / r53400;
double r53402 = 2.0;
double r53403 = pow(r53401, r53402);
double r53404 = r53398 - r53403;
double r53405 = sqrt(r53404);
double r53406 = t;
double r53407 = l;
double r53408 = r53406 / r53407;
double r53409 = pow(r53408, r53402);
double r53410 = fma(r53402, r53409, r53398);
double r53411 = sqrt(r53410);
double r53412 = r53405 / r53411;
double r53413 = fabs(r53412);
double r53414 = asin(r53413);
return r53414;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.6
Simplified10.6
rmApplied add-sqr-sqrt10.7
Applied add-sqr-sqrt10.7
Applied times-frac10.7
Applied rem-sqrt-square10.7
Final simplification10.7
herbie shell --seed 2020045 +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)))))))