\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(\frac{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 r46902 = 1.0;
double r46903 = Om;
double r46904 = Omc;
double r46905 = r46903 / r46904;
double r46906 = 2.0;
double r46907 = pow(r46905, r46906);
double r46908 = r46902 - r46907;
double r46909 = t;
double r46910 = l;
double r46911 = r46909 / r46910;
double r46912 = pow(r46911, r46906);
double r46913 = r46906 * r46912;
double r46914 = r46902 + r46913;
double r46915 = r46908 / r46914;
double r46916 = sqrt(r46915);
double r46917 = asin(r46916);
return r46917;
}
double f(double t, double l, double Om, double Omc) {
double r46918 = 1.0;
double r46919 = Om;
double r46920 = Omc;
double r46921 = r46919 / r46920;
double r46922 = 2.0;
double r46923 = pow(r46921, r46922);
double r46924 = r46918 - r46923;
double r46925 = t;
double r46926 = l;
double r46927 = r46925 / r46926;
double r46928 = pow(r46927, r46922);
double r46929 = fma(r46928, r46922, r46918);
double r46930 = r46924 / r46929;
double r46931 = log1p(r46930);
double r46932 = expm1(r46931);
double r46933 = sqrt(r46932);
double r46934 = asin(r46933);
return r46934;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.1
rmApplied expm1-log1p-u10.1
Simplified10.1
Final simplification10.1
herbie shell --seed 2019196 +o rules:numerics
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1.0 (pow (/ Om Omc) 2.0)) (+ 1.0 (* 2.0 (pow (/ t l) 2.0)))))))