\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{\sqrt{\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)}}} \cdot \sqrt{\sqrt{\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)double f(double t, double l, double Om, double Omc) {
double r68804 = 1.0;
double r68805 = Om;
double r68806 = Omc;
double r68807 = r68805 / r68806;
double r68808 = 2.0;
double r68809 = pow(r68807, r68808);
double r68810 = r68804 - r68809;
double r68811 = t;
double r68812 = l;
double r68813 = r68811 / r68812;
double r68814 = pow(r68813, r68808);
double r68815 = r68808 * r68814;
double r68816 = r68804 + r68815;
double r68817 = r68810 / r68816;
double r68818 = sqrt(r68817);
double r68819 = asin(r68818);
return r68819;
}
double f(double t, double l, double Om, double Omc) {
double r68820 = 1.0;
double r68821 = Om;
double r68822 = Omc;
double r68823 = r68821 / r68822;
double r68824 = 2.0;
double r68825 = pow(r68823, r68824);
double r68826 = r68820 - r68825;
double r68827 = sqrt(r68826);
double r68828 = t;
double r68829 = l;
double r68830 = r68828 / r68829;
double r68831 = pow(r68830, r68824);
double r68832 = fma(r68831, r68824, r68820);
double r68833 = r68827 / r68832;
double r68834 = r68827 * r68833;
double r68835 = sqrt(r68834);
double r68836 = sqrt(r68835);
double r68837 = r68836 * r68836;
double r68838 = asin(r68837);
return r68838;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.6
rmApplied *-un-lft-identity10.6
Applied add-sqr-sqrt10.6
Applied times-frac10.6
Simplified10.6
Simplified10.6
rmApplied add-sqr-sqrt10.7
Final simplification10.7
herbie shell --seed 2020060 +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)))))))