\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 8.946608318687243 \cdot 10^{+131}:\\
\;\;\;\;\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 r1691291 = 1.0;
double r1691292 = Om;
double r1691293 = Omc;
double r1691294 = r1691292 / r1691293;
double r1691295 = 2.0;
double r1691296 = pow(r1691294, r1691295);
double r1691297 = r1691291 - r1691296;
double r1691298 = t;
double r1691299 = l;
double r1691300 = r1691298 / r1691299;
double r1691301 = pow(r1691300, r1691295);
double r1691302 = r1691295 * r1691301;
double r1691303 = r1691291 + r1691302;
double r1691304 = r1691297 / r1691303;
double r1691305 = sqrt(r1691304);
double r1691306 = asin(r1691305);
return r1691306;
}
double f(double t, double l, double Om, double Omc) {
double r1691307 = t;
double r1691308 = l;
double r1691309 = r1691307 / r1691308;
double r1691310 = 8.946608318687243e+131;
bool r1691311 = r1691309 <= r1691310;
double r1691312 = 1.0;
double r1691313 = Om;
double r1691314 = Omc;
double r1691315 = r1691313 / r1691314;
double r1691316 = r1691315 * r1691315;
double r1691317 = r1691312 - r1691316;
double r1691318 = sqrt(r1691317);
double r1691319 = r1691309 * r1691309;
double r1691320 = 2.0;
double r1691321 = r1691319 * r1691320;
double r1691322 = r1691312 + r1691321;
double r1691323 = sqrt(r1691322);
double r1691324 = r1691318 / r1691323;
double r1691325 = asin(r1691324);
double r1691326 = sqrt(r1691320);
double r1691327 = r1691307 * r1691326;
double r1691328 = r1691327 / r1691308;
double r1691329 = r1691318 / r1691328;
double r1691330 = asin(r1691329);
double r1691331 = r1691311 ? r1691325 : r1691330;
return r1691331;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
if (/ t l) < 8.946608318687243e+131Initial program 6.5
Simplified6.5
rmApplied sqrt-div6.5
if 8.946608318687243e+131 < (/ t l) Initial program 29.9
Simplified29.9
rmApplied sqrt-div29.9
Taylor expanded around inf 0.9
Final simplification5.6
herbie shell --seed 2019143
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))