\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{\mathsf{expm1}\left(\mathsf{log1p}\left(\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}} \cdot \frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\mathsf{fma}\left({\left(\frac{t}{\ell}\right)}^{2}, 2, 1\right)}\right)\right)}\right)double f(double t, double l, double Om, double Omc) {
double r84721 = 1.0;
double r84722 = Om;
double r84723 = Omc;
double r84724 = r84722 / r84723;
double r84725 = 2.0;
double r84726 = pow(r84724, r84725);
double r84727 = r84721 - r84726;
double r84728 = t;
double r84729 = l;
double r84730 = r84728 / r84729;
double r84731 = pow(r84730, r84725);
double r84732 = r84725 * r84731;
double r84733 = r84721 + r84732;
double r84734 = r84727 / r84733;
double r84735 = sqrt(r84734);
double r84736 = asin(r84735);
return r84736;
}
double f(double t, double l, double Om, double Omc) {
double r84737 = 1.0;
double r84738 = Om;
double r84739 = Omc;
double r84740 = r84738 / r84739;
double r84741 = 2.0;
double r84742 = pow(r84740, r84741);
double r84743 = r84737 - r84742;
double r84744 = sqrt(r84743);
double r84745 = t;
double r84746 = l;
double r84747 = r84745 / r84746;
double r84748 = pow(r84747, r84741);
double r84749 = fma(r84748, r84741, r84737);
double r84750 = r84744 / r84749;
double r84751 = r84744 * r84750;
double r84752 = log1p(r84751);
double r84753 = expm1(r84752);
double r84754 = sqrt(r84753);
double r84755 = asin(r84754);
return r84755;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 9.9
rmApplied expm1-log1p-u10.0
rmApplied *-un-lft-identity10.0
Applied add-sqr-sqrt10.0
Applied times-frac10.0
Simplified10.0
Simplified10.0
Final simplification10.0
herbie shell --seed 2020083 +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)))))))