\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.4752565700038008 \cdot 10^{+89}:\\
\;\;\;\;\sin^{-1} \left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\sqrt{\sqrt{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)}}}\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 r2935545 = 1.0;
double r2935546 = Om;
double r2935547 = Omc;
double r2935548 = r2935546 / r2935547;
double r2935549 = 2.0;
double r2935550 = pow(r2935548, r2935549);
double r2935551 = r2935545 - r2935550;
double r2935552 = t;
double r2935553 = l;
double r2935554 = r2935552 / r2935553;
double r2935555 = pow(r2935554, r2935549);
double r2935556 = r2935549 * r2935555;
double r2935557 = r2935545 + r2935556;
double r2935558 = r2935551 / r2935557;
double r2935559 = sqrt(r2935558);
double r2935560 = asin(r2935559);
return r2935560;
}
double f(double t, double l, double Om, double Omc) {
double r2935561 = t;
double r2935562 = l;
double r2935563 = r2935561 / r2935562;
double r2935564 = 1.4752565700038008e+89;
bool r2935565 = r2935563 <= r2935564;
double r2935566 = 1.0;
double r2935567 = Om;
double r2935568 = Omc;
double r2935569 = r2935567 / r2935568;
double r2935570 = r2935569 * r2935569;
double r2935571 = r2935566 - r2935570;
double r2935572 = sqrt(r2935571);
double r2935573 = r2935563 * r2935563;
double r2935574 = 2.0;
double r2935575 = fma(r2935573, r2935574, r2935566);
double r2935576 = sqrt(r2935575);
double r2935577 = sqrt(r2935576);
double r2935578 = r2935577 * r2935577;
double r2935579 = r2935572 / r2935578;
double r2935580 = asin(r2935579);
double r2935581 = sqrt(r2935574);
double r2935582 = r2935561 * r2935581;
double r2935583 = r2935582 / r2935562;
double r2935584 = r2935572 / r2935583;
double r2935585 = asin(r2935584);
double r2935586 = r2935565 ? r2935580 : r2935585;
return r2935586;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
if (/ t l) < 1.4752565700038008e+89Initial program 6.7
Simplified6.7
rmApplied sqrt-div6.7
rmApplied add-sqr-sqrt6.7
Applied sqrt-prod6.8
if 1.4752565700038008e+89 < (/ t l) Initial program 27.2
Simplified27.2
rmApplied sqrt-div27.2
Taylor expanded around -inf 1.3
Final simplification5.7
herbie shell --seed 2019121 +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)))))))