\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(\sqrt{\frac{1 - \log \left(e^{\frac{Om}{Omc} \cdot \frac{Om}{Omc}}\right)}{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)}}\right)double f(double t, double l, double Om, double Omc) {
double r2158427 = 1.0;
double r2158428 = Om;
double r2158429 = Omc;
double r2158430 = r2158428 / r2158429;
double r2158431 = 2.0;
double r2158432 = pow(r2158430, r2158431);
double r2158433 = r2158427 - r2158432;
double r2158434 = t;
double r2158435 = l;
double r2158436 = r2158434 / r2158435;
double r2158437 = pow(r2158436, r2158431);
double r2158438 = r2158431 * r2158437;
double r2158439 = r2158427 + r2158438;
double r2158440 = r2158433 / r2158439;
double r2158441 = sqrt(r2158440);
double r2158442 = asin(r2158441);
return r2158442;
}
double f(double t, double l, double Om, double Omc) {
double r2158443 = 1.0;
double r2158444 = Om;
double r2158445 = Omc;
double r2158446 = r2158444 / r2158445;
double r2158447 = r2158446 * r2158446;
double r2158448 = exp(r2158447);
double r2158449 = log(r2158448);
double r2158450 = r2158443 - r2158449;
double r2158451 = t;
double r2158452 = l;
double r2158453 = r2158451 / r2158452;
double r2158454 = r2158453 * r2158453;
double r2158455 = 2.0;
double r2158456 = fma(r2158454, r2158455, r2158443);
double r2158457 = r2158450 / r2158456;
double r2158458 = sqrt(r2158457);
double r2158459 = asin(r2158458);
return r2158459;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.3
Simplified10.3
rmApplied add-log-exp10.3
Final simplification10.3
herbie shell --seed 2019132 +o rules:numerics
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))