\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\begin{array}{l}
\mathbf{if}\;\frac{t}{\ell} \le 1.2007149219171108 \cdot 10^{+153}:\\
\;\;\;\;\sin^{-1} \left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\sqrt{1 + \left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\sin^{-1} \left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\frac{t \cdot \sqrt{2}}{\ell}}\right)\\
\end{array}double f(double t, double l, double Om, double Omc) {
double r1704589 = 1.0;
double r1704590 = Om;
double r1704591 = Omc;
double r1704592 = r1704590 / r1704591;
double r1704593 = 2.0;
double r1704594 = pow(r1704592, r1704593);
double r1704595 = r1704589 - r1704594;
double r1704596 = t;
double r1704597 = l;
double r1704598 = r1704596 / r1704597;
double r1704599 = pow(r1704598, r1704593);
double r1704600 = r1704593 * r1704599;
double r1704601 = r1704589 + r1704600;
double r1704602 = r1704595 / r1704601;
double r1704603 = sqrt(r1704602);
double r1704604 = asin(r1704603);
return r1704604;
}
double f(double t, double l, double Om, double Omc) {
double r1704605 = t;
double r1704606 = l;
double r1704607 = r1704605 / r1704606;
double r1704608 = 1.2007149219171108e+153;
bool r1704609 = r1704607 <= r1704608;
double r1704610 = 1.0;
double r1704611 = Om;
double r1704612 = Omc;
double r1704613 = r1704611 / r1704612;
double r1704614 = r1704613 * r1704613;
double r1704615 = r1704610 - r1704614;
double r1704616 = sqrt(r1704615);
double r1704617 = r1704607 * r1704607;
double r1704618 = 2.0;
double r1704619 = r1704617 * r1704618;
double r1704620 = r1704610 + r1704619;
double r1704621 = sqrt(r1704620);
double r1704622 = r1704616 / r1704621;
double r1704623 = asin(r1704622);
double r1704624 = sqrt(r1704618);
double r1704625 = r1704605 * r1704624;
double r1704626 = r1704625 / r1704606;
double r1704627 = r1704616 / r1704626;
double r1704628 = asin(r1704627);
double r1704629 = r1704609 ? r1704623 : r1704628;
return r1704629;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
if (/ t l) < 1.2007149219171108e+153Initial program 6.0
Simplified6.0
rmApplied sqrt-div6.1
if 1.2007149219171108e+153 < (/ t l) Initial program 34.9
Simplified34.9
rmApplied sqrt-div34.9
Taylor expanded around inf 1.4
Final simplification5.4
herbie shell --seed 2019152
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))