\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\mathsf{expm1}\left(\mathsf{log1p}\left(\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\right)\right)double f(double t, double l, double Om, double Omc) {
double r186 = 1.0;
double r187 = Om;
double r188 = Omc;
double r189 = r187 / r188;
double r190 = 2.0;
double r191 = pow(r189, r190);
double r192 = r186 - r191;
double r193 = t;
double r194 = l;
double r195 = r193 / r194;
double r196 = pow(r195, r190);
double r197 = r190 * r196;
double r198 = r186 + r197;
double r199 = r192 / r198;
double r200 = sqrt(r199);
double r201 = asin(r200);
return r201;
}
double f(double t, double l, double Om, double Omc) {
double r202 = 1.0;
double r203 = Om;
double r204 = Omc;
double r205 = r203 / r204;
double r206 = 2.0;
double r207 = pow(r205, r206);
double r208 = r202 - r207;
double r209 = t;
double r210 = l;
double r211 = r209 / r210;
double r212 = pow(r211, r206);
double r213 = r206 * r212;
double r214 = r202 + r213;
double r215 = r208 / r214;
double r216 = sqrt(r215);
double r217 = asin(r216);
double r218 = log1p(r217);
double r219 = expm1(r218);
return r219;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.3
rmApplied expm1-log1p-u10.3
Final simplification10.3
herbie shell --seed 2020025 +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)))))))