\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.0964407420254373 \cdot 10^{+146}:\\
\;\;\;\;\sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{2 \cdot \left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) + 1}}\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 r1615905 = 1.0;
double r1615906 = Om;
double r1615907 = Omc;
double r1615908 = r1615906 / r1615907;
double r1615909 = 2.0;
double r1615910 = pow(r1615908, r1615909);
double r1615911 = r1615905 - r1615910;
double r1615912 = t;
double r1615913 = l;
double r1615914 = r1615912 / r1615913;
double r1615915 = pow(r1615914, r1615909);
double r1615916 = r1615909 * r1615915;
double r1615917 = r1615905 + r1615916;
double r1615918 = r1615911 / r1615917;
double r1615919 = sqrt(r1615918);
double r1615920 = asin(r1615919);
return r1615920;
}
double f(double t, double l, double Om, double Omc) {
double r1615921 = t;
double r1615922 = l;
double r1615923 = r1615921 / r1615922;
double r1615924 = 1.0964407420254373e+146;
bool r1615925 = r1615923 <= r1615924;
double r1615926 = 1.0;
double r1615927 = Om;
double r1615928 = Omc;
double r1615929 = r1615927 / r1615928;
double r1615930 = r1615929 * r1615929;
double r1615931 = r1615926 - r1615930;
double r1615932 = 2.0;
double r1615933 = r1615923 * r1615923;
double r1615934 = r1615932 * r1615933;
double r1615935 = r1615934 + r1615926;
double r1615936 = r1615931 / r1615935;
double r1615937 = sqrt(r1615936);
double r1615938 = asin(r1615937);
double r1615939 = sqrt(r1615931);
double r1615940 = sqrt(r1615932);
double r1615941 = r1615921 * r1615940;
double r1615942 = r1615941 / r1615922;
double r1615943 = r1615939 / r1615942;
double r1615944 = asin(r1615943);
double r1615945 = r1615925 ? r1615938 : r1615944;
return r1615945;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
if (/ t l) < 1.0964407420254373e+146Initial program 6.4
Simplified6.4
if 1.0964407420254373e+146 < (/ t l) Initial program 34.2
Simplified34.2
rmApplied sqrt-div34.2
Taylor expanded around inf 1.3
Final simplification5.6
herbie shell --seed 2019146
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))