\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\sin^{-1} \left(\left|\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right|\right)double f(double t, double l, double Om, double Omc) {
double r65266 = 1.0;
double r65267 = Om;
double r65268 = Omc;
double r65269 = r65267 / r65268;
double r65270 = 2.0;
double r65271 = pow(r65269, r65270);
double r65272 = r65266 - r65271;
double r65273 = t;
double r65274 = l;
double r65275 = r65273 / r65274;
double r65276 = pow(r65275, r65270);
double r65277 = r65270 * r65276;
double r65278 = r65266 + r65277;
double r65279 = r65272 / r65278;
double r65280 = sqrt(r65279);
double r65281 = asin(r65280);
return r65281;
}
double f(double t, double l, double Om, double Omc) {
double r65282 = 1.0;
double r65283 = Om;
double r65284 = Omc;
double r65285 = r65283 / r65284;
double r65286 = 2.0;
double r65287 = pow(r65285, r65286);
double r65288 = r65282 - r65287;
double r65289 = sqrt(r65288);
double r65290 = t;
double r65291 = l;
double r65292 = r65290 / r65291;
double r65293 = pow(r65292, r65286);
double r65294 = r65286 * r65293;
double r65295 = r65282 + r65294;
double r65296 = sqrt(r65295);
double r65297 = r65289 / r65296;
double r65298 = fabs(r65297);
double r65299 = asin(r65298);
return r65299;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.1
rmApplied add-sqr-sqrt10.1
Applied add-sqr-sqrt10.1
Applied times-frac10.1
Applied rem-sqrt-square10.1
Final simplification10.1
herbie shell --seed 2020062
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
:precision binary64
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))