\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{1 - {\left(\frac{Om}{Omc}\right)}^{2}} \cdot \sqrt{\frac{1}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)double f(double t, double l, double Om, double Omc) {
double r72445 = 1.0;
double r72446 = Om;
double r72447 = Omc;
double r72448 = r72446 / r72447;
double r72449 = 2.0;
double r72450 = pow(r72448, r72449);
double r72451 = r72445 - r72450;
double r72452 = t;
double r72453 = l;
double r72454 = r72452 / r72453;
double r72455 = pow(r72454, r72449);
double r72456 = r72449 * r72455;
double r72457 = r72445 + r72456;
double r72458 = r72451 / r72457;
double r72459 = sqrt(r72458);
double r72460 = asin(r72459);
return r72460;
}
double f(double t, double l, double Om, double Omc) {
double r72461 = 1.0;
double r72462 = Om;
double r72463 = Omc;
double r72464 = r72462 / r72463;
double r72465 = 2.0;
double r72466 = pow(r72464, r72465);
double r72467 = r72461 - r72466;
double r72468 = sqrt(r72467);
double r72469 = 1.0;
double r72470 = t;
double r72471 = l;
double r72472 = r72470 / r72471;
double r72473 = pow(r72472, r72465);
double r72474 = r72465 * r72473;
double r72475 = r72461 + r72474;
double r72476 = r72469 / r72475;
double r72477 = sqrt(r72476);
double r72478 = r72468 * r72477;
double r72479 = asin(r72478);
return r72479;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 9.7
rmApplied div-inv9.7
Applied sqrt-prod9.7
Final simplification9.7
herbie shell --seed 2020033
(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)))))))