\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{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right|\right)double f(double t, double l, double Om, double Omc) {
double r72419 = 1.0;
double r72420 = Om;
double r72421 = Omc;
double r72422 = r72420 / r72421;
double r72423 = 2.0;
double r72424 = pow(r72422, r72423);
double r72425 = r72419 - r72424;
double r72426 = t;
double r72427 = l;
double r72428 = r72426 / r72427;
double r72429 = pow(r72428, r72423);
double r72430 = r72423 * r72429;
double r72431 = r72419 + r72430;
double r72432 = r72425 / r72431;
double r72433 = sqrt(r72432);
double r72434 = asin(r72433);
return r72434;
}
double f(double t, double l, double Om, double Omc) {
double r72435 = 1.0;
double r72436 = Om;
double r72437 = Omc;
double r72438 = r72436 / r72437;
double r72439 = 2.0;
double r72440 = pow(r72438, r72439);
double r72441 = r72435 - r72440;
double r72442 = sqrt(r72441);
double r72443 = t;
double r72444 = l;
double r72445 = r72443 / r72444;
double r72446 = pow(r72445, r72439);
double r72447 = r72439 * r72446;
double r72448 = r72435 + r72447;
double r72449 = sqrt(r72448);
double r72450 = r72442 / r72449;
double r72451 = fabs(r72450);
double r72452 = asin(r72451);
return r72452;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.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
(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)))))))