\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 8915468.122692978:\\
\;\;\;\;\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 r3848785 = 1.0;
double r3848786 = Om;
double r3848787 = Omc;
double r3848788 = r3848786 / r3848787;
double r3848789 = 2.0;
double r3848790 = pow(r3848788, r3848789);
double r3848791 = r3848785 - r3848790;
double r3848792 = t;
double r3848793 = l;
double r3848794 = r3848792 / r3848793;
double r3848795 = pow(r3848794, r3848789);
double r3848796 = r3848789 * r3848795;
double r3848797 = r3848785 + r3848796;
double r3848798 = r3848791 / r3848797;
double r3848799 = sqrt(r3848798);
double r3848800 = asin(r3848799);
return r3848800;
}
double f(double t, double l, double Om, double Omc) {
double r3848801 = t;
double r3848802 = l;
double r3848803 = r3848801 / r3848802;
double r3848804 = 8915468.122692978;
bool r3848805 = r3848803 <= r3848804;
double r3848806 = 1.0;
double r3848807 = Om;
double r3848808 = Omc;
double r3848809 = r3848807 / r3848808;
double r3848810 = r3848809 * r3848809;
double r3848811 = r3848806 - r3848810;
double r3848812 = sqrt(r3848811);
double r3848813 = r3848803 * r3848803;
double r3848814 = 2.0;
double r3848815 = r3848813 * r3848814;
double r3848816 = r3848806 + r3848815;
double r3848817 = sqrt(r3848816);
double r3848818 = r3848812 / r3848817;
double r3848819 = asin(r3848818);
double r3848820 = sqrt(r3848814);
double r3848821 = r3848801 * r3848820;
double r3848822 = r3848821 / r3848802;
double r3848823 = r3848812 / r3848822;
double r3848824 = asin(r3848823);
double r3848825 = r3848805 ? r3848819 : r3848824;
return r3848825;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
if (/ t l) < 8915468.122692978Initial program 7.1
Simplified7.1
rmApplied sqrt-div7.2
if 8915468.122692978 < (/ t l) Initial program 21.0
Simplified21.0
rmApplied sqrt-div21.0
Taylor expanded around -inf 1.1
Final simplification5.7
herbie shell --seed 2019121
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))