\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(\sqrt[3]{\frac{Om}{Omc}} \cdot \sqrt[3]{\frac{Om}{Omc}}\right)}^{2} \cdot {\left(\sqrt[3]{\frac{Om}{Omc}}\right)}^{2}}{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right)double f(double t, double l, double Om, double Omc) {
double r63384 = 1.0;
double r63385 = Om;
double r63386 = Omc;
double r63387 = r63385 / r63386;
double r63388 = 2.0;
double r63389 = pow(r63387, r63388);
double r63390 = r63384 - r63389;
double r63391 = t;
double r63392 = l;
double r63393 = r63391 / r63392;
double r63394 = pow(r63393, r63388);
double r63395 = r63388 * r63394;
double r63396 = r63384 + r63395;
double r63397 = r63390 / r63396;
double r63398 = sqrt(r63397);
double r63399 = asin(r63398);
return r63399;
}
double f(double t, double l, double Om, double Omc) {
double r63400 = 1.0;
double r63401 = Om;
double r63402 = Omc;
double r63403 = r63401 / r63402;
double r63404 = cbrt(r63403);
double r63405 = r63404 * r63404;
double r63406 = 2.0;
double r63407 = pow(r63405, r63406);
double r63408 = pow(r63404, r63406);
double r63409 = r63407 * r63408;
double r63410 = r63400 - r63409;
double r63411 = t;
double r63412 = l;
double r63413 = r63411 / r63412;
double r63414 = pow(r63413, r63406);
double r63415 = fma(r63406, r63414, r63400);
double r63416 = r63410 / r63415;
double r63417 = sqrt(r63416);
double r63418 = asin(r63417);
return r63418;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.2
Simplified10.2
rmApplied add-cube-cbrt10.2
Applied unpow-prod-down10.2
Final simplification10.2
herbie shell --seed 2020047 +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)))))))