\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^{{\left(\frac{Om}{Omc}\right)}^{2}}\right)}{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right)double f(double t, double l, double Om, double Omc) {
double r50046 = 1.0;
double r50047 = Om;
double r50048 = Omc;
double r50049 = r50047 / r50048;
double r50050 = 2.0;
double r50051 = pow(r50049, r50050);
double r50052 = r50046 - r50051;
double r50053 = t;
double r50054 = l;
double r50055 = r50053 / r50054;
double r50056 = pow(r50055, r50050);
double r50057 = r50050 * r50056;
double r50058 = r50046 + r50057;
double r50059 = r50052 / r50058;
double r50060 = sqrt(r50059);
double r50061 = asin(r50060);
return r50061;
}
double f(double t, double l, double Om, double Omc) {
double r50062 = 1.0;
double r50063 = Om;
double r50064 = Omc;
double r50065 = r50063 / r50064;
double r50066 = 2.0;
double r50067 = pow(r50065, r50066);
double r50068 = exp(r50067);
double r50069 = log(r50068);
double r50070 = r50062 - r50069;
double r50071 = t;
double r50072 = l;
double r50073 = r50071 / r50072;
double r50074 = pow(r50073, r50066);
double r50075 = fma(r50066, r50074, r50062);
double r50076 = r50070 / r50075;
double r50077 = sqrt(r50076);
double r50078 = asin(r50077);
return r50078;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.5
Simplified10.5
rmApplied add-log-exp10.5
Final simplification10.5
herbie shell --seed 2019306 +o rules:numerics
(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)))))))