\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.3226963208817615 \cdot 10^{+73}:\\
\;\;\;\;\sin^{-1} \left(\frac{\sqrt{1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}}}{\sqrt{\frac{t}{\ell} \cdot \frac{t}{\ell} + \left(1 + \frac{t}{\ell} \cdot \frac{t}{\ell}\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 r930218 = 1.0;
double r930219 = Om;
double r930220 = Omc;
double r930221 = r930219 / r930220;
double r930222 = 2.0;
double r930223 = pow(r930221, r930222);
double r930224 = r930218 - r930223;
double r930225 = t;
double r930226 = l;
double r930227 = r930225 / r930226;
double r930228 = pow(r930227, r930222);
double r930229 = r930222 * r930228;
double r930230 = r930218 + r930229;
double r930231 = r930224 / r930230;
double r930232 = sqrt(r930231);
double r930233 = asin(r930232);
return r930233;
}
double f(double t, double l, double Om, double Omc) {
double r930234 = t;
double r930235 = l;
double r930236 = r930234 / r930235;
double r930237 = 1.3226963208817615e+73;
bool r930238 = r930236 <= r930237;
double r930239 = 1.0;
double r930240 = Om;
double r930241 = Omc;
double r930242 = r930240 / r930241;
double r930243 = r930242 * r930242;
double r930244 = r930239 - r930243;
double r930245 = sqrt(r930244);
double r930246 = r930236 * r930236;
double r930247 = r930239 + r930246;
double r930248 = r930246 + r930247;
double r930249 = sqrt(r930248);
double r930250 = r930245 / r930249;
double r930251 = asin(r930250);
double r930252 = 2.0;
double r930253 = sqrt(r930252);
double r930254 = r930234 * r930253;
double r930255 = r930254 / r930235;
double r930256 = r930245 / r930255;
double r930257 = asin(r930256);
double r930258 = r930238 ? r930251 : r930257;
return r930258;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
if (/ t l) < 1.3226963208817615e+73Initial program 6.9
Simplified6.9
rmApplied add-sqr-sqrt6.9
rmApplied sqrt-div6.9
Simplified6.9
if 1.3226963208817615e+73 < (/ t l) Initial program 25.3
Simplified25.3
rmApplied add-sqr-sqrt25.3
rmApplied sqrt-div25.3
Simplified25.3
Taylor expanded around inf 1.3
Final simplification5.9
herbie shell --seed 2019153
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))