\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(\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)double f(double t, double l, double Om, double Omc) {
double r67871 = 1.0;
double r67872 = Om;
double r67873 = Omc;
double r67874 = r67872 / r67873;
double r67875 = 2.0;
double r67876 = pow(r67874, r67875);
double r67877 = r67871 - r67876;
double r67878 = t;
double r67879 = l;
double r67880 = r67878 / r67879;
double r67881 = pow(r67880, r67875);
double r67882 = r67875 * r67881;
double r67883 = r67871 + r67882;
double r67884 = r67877 / r67883;
double r67885 = sqrt(r67884);
double r67886 = asin(r67885);
return r67886;
}
double f(double t, double l, double Om, double Omc) {
double r67887 = 1.0;
double r67888 = Om;
double r67889 = Omc;
double r67890 = r67888 / r67889;
double r67891 = 2.0;
double r67892 = pow(r67890, r67891);
double r67893 = r67887 - r67892;
double r67894 = sqrt(r67893);
double r67895 = t;
double r67896 = l;
double r67897 = r67895 / r67896;
double r67898 = pow(r67897, r67891);
double r67899 = r67891 * r67898;
double r67900 = r67887 + r67899;
double r67901 = sqrt(r67900);
double r67902 = r67894 / r67901;
double r67903 = asin(r67902);
return r67903;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.2
rmApplied sqrt-div10.2
Final simplification10.2
herbie shell --seed 2020064 +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)))))))