\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 7.572137631982805 \cdot 10^{+147}:\\
\;\;\;\;\sin^{-1} \left(\sqrt{\frac{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}{\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right) \cdot 2 + 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 r1607578 = 1.0;
double r1607579 = Om;
double r1607580 = Omc;
double r1607581 = r1607579 / r1607580;
double r1607582 = 2.0;
double r1607583 = pow(r1607581, r1607582);
double r1607584 = r1607578 - r1607583;
double r1607585 = t;
double r1607586 = l;
double r1607587 = r1607585 / r1607586;
double r1607588 = pow(r1607587, r1607582);
double r1607589 = r1607582 * r1607588;
double r1607590 = r1607578 + r1607589;
double r1607591 = r1607584 / r1607590;
double r1607592 = sqrt(r1607591);
double r1607593 = asin(r1607592);
return r1607593;
}
double f(double t, double l, double Om, double Omc) {
double r1607594 = t;
double r1607595 = l;
double r1607596 = r1607594 / r1607595;
double r1607597 = 7.572137631982805e+147;
bool r1607598 = r1607596 <= r1607597;
double r1607599 = 1.0;
double r1607600 = Om;
double r1607601 = Omc;
double r1607602 = r1607600 / r1607601;
double r1607603 = r1607602 * r1607602;
double r1607604 = r1607599 - r1607603;
double r1607605 = r1607596 * r1607596;
double r1607606 = 2.0;
double r1607607 = r1607605 * r1607606;
double r1607608 = r1607607 + r1607599;
double r1607609 = r1607604 / r1607608;
double r1607610 = sqrt(r1607609);
double r1607611 = asin(r1607610);
double r1607612 = sqrt(r1607604);
double r1607613 = sqrt(r1607606);
double r1607614 = r1607594 * r1607613;
double r1607615 = r1607614 / r1607595;
double r1607616 = r1607612 / r1607615;
double r1607617 = asin(r1607616);
double r1607618 = r1607598 ? r1607611 : r1607617;
return r1607618;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
if (/ t l) < 7.572137631982805e+147Initial program 6.0
Simplified6.0
rmApplied sqrt-div6.0
Taylor expanded around -inf 23.8
Simplified6.0
if 7.572137631982805e+147 < (/ t l) Initial program 31.7
Simplified31.7
rmApplied sqrt-div31.7
Taylor expanded around -inf 1.4
Final simplification5.3
herbie shell --seed 2019149
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))