\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 r70310 = 1.0;
double r70311 = Om;
double r70312 = Omc;
double r70313 = r70311 / r70312;
double r70314 = 2.0;
double r70315 = pow(r70313, r70314);
double r70316 = r70310 - r70315;
double r70317 = t;
double r70318 = l;
double r70319 = r70317 / r70318;
double r70320 = pow(r70319, r70314);
double r70321 = r70314 * r70320;
double r70322 = r70310 + r70321;
double r70323 = r70316 / r70322;
double r70324 = sqrt(r70323);
double r70325 = asin(r70324);
return r70325;
}
double f(double t, double l, double Om, double Omc) {
double r70326 = 1.0;
double r70327 = Om;
double r70328 = Omc;
double r70329 = r70327 / r70328;
double r70330 = 2.0;
double r70331 = pow(r70329, r70330);
double r70332 = r70326 - r70331;
double r70333 = sqrt(r70332);
double r70334 = t;
double r70335 = l;
double r70336 = r70334 / r70335;
double r70337 = pow(r70336, r70330);
double r70338 = r70330 * r70337;
double r70339 = r70326 + r70338;
double r70340 = sqrt(r70339);
double r70341 = r70333 / r70340;
double r70342 = fabs(r70341);
double r70343 = asin(r70342);
return r70343;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.9
rmApplied add-sqr-sqrt10.9
Applied add-sqr-sqrt10.9
Applied times-frac10.9
Applied rem-sqrt-square10.9
Final simplification10.9
herbie shell --seed 2020057
(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)))))))