\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 -6.888860690548247 \cdot 10^{+70}:\\
\;\;\;\;\sin^{-1} \left(\left|\frac{\sqrt{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}}{\frac{\sqrt{2} \cdot t}{\ell}}\right|\right)\\
\mathbf{elif}\;\frac{t}{\ell} \le 8.516626991432281 \cdot 10^{+142}:\\
\;\;\;\;\sin^{-1} \left(\sqrt{\frac{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}{\mathsf{fma}\left(\frac{t}{\ell} \cdot \frac{t}{\ell}, 2, 1\right)}}\right)\\
\mathbf{else}:\\
\;\;\;\;\sin^{-1} \left(\left|\frac{\sqrt{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}}{\frac{\sqrt{2} \cdot t}{\ell}}\right|\right)\\
\end{array}double f(double t, double l, double Om, double Omc) {
double r1808999 = 1.0;
double r1809000 = Om;
double r1809001 = Omc;
double r1809002 = r1809000 / r1809001;
double r1809003 = 2.0;
double r1809004 = pow(r1809002, r1809003);
double r1809005 = r1808999 - r1809004;
double r1809006 = t;
double r1809007 = l;
double r1809008 = r1809006 / r1809007;
double r1809009 = pow(r1809008, r1809003);
double r1809010 = r1809003 * r1809009;
double r1809011 = r1808999 + r1809010;
double r1809012 = r1809005 / r1809011;
double r1809013 = sqrt(r1809012);
double r1809014 = asin(r1809013);
return r1809014;
}
double f(double t, double l, double Om, double Omc) {
double r1809015 = t;
double r1809016 = l;
double r1809017 = r1809015 / r1809016;
double r1809018 = -6.888860690548247e+70;
bool r1809019 = r1809017 <= r1809018;
double r1809020 = 1.0;
double r1809021 = Om;
double r1809022 = Omc;
double r1809023 = r1809021 / r1809022;
double r1809024 = r1809023 * r1809023;
double r1809025 = exp(r1809024);
double r1809026 = log(r1809025);
double r1809027 = r1809020 - r1809026;
double r1809028 = sqrt(r1809027);
double r1809029 = 2.0;
double r1809030 = sqrt(r1809029);
double r1809031 = r1809030 * r1809015;
double r1809032 = r1809031 / r1809016;
double r1809033 = r1809028 / r1809032;
double r1809034 = fabs(r1809033);
double r1809035 = asin(r1809034);
double r1809036 = 8.516626991432281e+142;
bool r1809037 = r1809017 <= r1809036;
double r1809038 = r1809017 * r1809017;
double r1809039 = fma(r1809038, r1809029, r1809020);
double r1809040 = r1809027 / r1809039;
double r1809041 = sqrt(r1809040);
double r1809042 = asin(r1809041);
double r1809043 = r1809037 ? r1809042 : r1809035;
double r1809044 = r1809019 ? r1809035 : r1809043;
return r1809044;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
if (/ t l) < -6.888860690548247e+70 or 8.516626991432281e+142 < (/ t l) Initial program 28.4
Simplified28.4
rmApplied add-log-exp28.4
rmApplied add-sqr-sqrt28.4
Applied add-sqr-sqrt28.4
Applied times-frac28.4
Applied rem-sqrt-square28.4
Taylor expanded around inf 1.1
if -6.888860690548247e+70 < (/ t l) < 8.516626991432281e+142Initial program 1.1
Simplified1.1
rmApplied add-log-exp1.1
Final simplification1.1
herbie shell --seed 2019135 +o rules:numerics
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))