\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 r73586 = 1.0;
double r73587 = Om;
double r73588 = Omc;
double r73589 = r73587 / r73588;
double r73590 = 2.0;
double r73591 = pow(r73589, r73590);
double r73592 = r73586 - r73591;
double r73593 = t;
double r73594 = l;
double r73595 = r73593 / r73594;
double r73596 = pow(r73595, r73590);
double r73597 = r73590 * r73596;
double r73598 = r73586 + r73597;
double r73599 = r73592 / r73598;
double r73600 = sqrt(r73599);
double r73601 = asin(r73600);
return r73601;
}
double f(double t, double l, double Om, double Omc) {
double r73602 = 1.0;
double r73603 = Om;
double r73604 = Omc;
double r73605 = r73603 / r73604;
double r73606 = 2.0;
double r73607 = pow(r73605, r73606);
double r73608 = r73602 - r73607;
double r73609 = sqrt(r73608);
double r73610 = t;
double r73611 = l;
double r73612 = r73610 / r73611;
double r73613 = pow(r73612, r73606);
double r73614 = r73606 * r73613;
double r73615 = r73602 + r73614;
double r73616 = sqrt(r73615);
double r73617 = r73609 / r73616;
double r73618 = fabs(r73617);
double r73619 = asin(r73618);
return r73619;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.2
rmApplied add-sqr-sqrt10.3
Applied add-sqr-sqrt10.3
Applied times-frac10.3
Applied rem-sqrt-square10.3
Final simplification10.3
herbie shell --seed 2020047
(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)))))))