\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 2.0828564500996377 \cdot 10^{+39}:\\
\;\;\;\;\sin^{-1} \left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\sqrt{\frac{2}{\frac{\ell}{t} \cdot \frac{\ell}{t}} + 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 r5121109 = 1.0;
double r5121110 = Om;
double r5121111 = Omc;
double r5121112 = r5121110 / r5121111;
double r5121113 = 2.0;
double r5121114 = pow(r5121112, r5121113);
double r5121115 = r5121109 - r5121114;
double r5121116 = t;
double r5121117 = l;
double r5121118 = r5121116 / r5121117;
double r5121119 = pow(r5121118, r5121113);
double r5121120 = r5121113 * r5121119;
double r5121121 = r5121109 + r5121120;
double r5121122 = r5121115 / r5121121;
double r5121123 = sqrt(r5121122);
double r5121124 = asin(r5121123);
return r5121124;
}
double f(double t, double l, double Om, double Omc) {
double r5121125 = t;
double r5121126 = l;
double r5121127 = r5121125 / r5121126;
double r5121128 = 2.0828564500996377e+39;
bool r5121129 = r5121127 <= r5121128;
double r5121130 = 1.0;
double r5121131 = Om;
double r5121132 = Omc;
double r5121133 = r5121131 / r5121132;
double r5121134 = r5121133 * r5121133;
double r5121135 = r5121130 - r5121134;
double r5121136 = sqrt(r5121135);
double r5121137 = 2.0;
double r5121138 = r5121126 / r5121125;
double r5121139 = r5121138 * r5121138;
double r5121140 = r5121137 / r5121139;
double r5121141 = r5121140 + r5121130;
double r5121142 = sqrt(r5121141);
double r5121143 = r5121136 / r5121142;
double r5121144 = asin(r5121143);
double r5121145 = sqrt(r5121137);
double r5121146 = r5121125 * r5121145;
double r5121147 = r5121146 / r5121126;
double r5121148 = r5121136 / r5121147;
double r5121149 = asin(r5121148);
double r5121150 = r5121129 ? r5121144 : r5121149;
return r5121150;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
if (/ t l) < 2.0828564500996377e+39Initial program 7.1
Simplified7.1
Taylor expanded around -inf 23.0
Simplified7.1
rmApplied sqrt-div7.1
if 2.0828564500996377e+39 < (/ t l) Initial program 22.0
Simplified22.0
Taylor expanded around -inf 38.6
Simplified22.0
rmApplied sqrt-div22.0
Taylor expanded around 0 1.1
Final simplification5.8
herbie shell --seed 2019124
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))