\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{\frac{1}{\mathsf{fma}\left(\left(\frac{t}{\ell} \cdot \frac{t}{\ell}\right), 2, 1\right)} \cdot \left(1 - \frac{Om}{Omc} \cdot \frac{Om}{Omc}\right)}\right)double f(double t, double l, double Om, double Omc) {
double r2493790 = 1.0;
double r2493791 = Om;
double r2493792 = Omc;
double r2493793 = r2493791 / r2493792;
double r2493794 = 2.0;
double r2493795 = pow(r2493793, r2493794);
double r2493796 = r2493790 - r2493795;
double r2493797 = t;
double r2493798 = l;
double r2493799 = r2493797 / r2493798;
double r2493800 = pow(r2493799, r2493794);
double r2493801 = r2493794 * r2493800;
double r2493802 = r2493790 + r2493801;
double r2493803 = r2493796 / r2493802;
double r2493804 = sqrt(r2493803);
double r2493805 = asin(r2493804);
return r2493805;
}
double f(double t, double l, double Om, double Omc) {
double r2493806 = 1.0;
double r2493807 = t;
double r2493808 = l;
double r2493809 = r2493807 / r2493808;
double r2493810 = r2493809 * r2493809;
double r2493811 = 2.0;
double r2493812 = fma(r2493810, r2493811, r2493806);
double r2493813 = r2493806 / r2493812;
double r2493814 = Om;
double r2493815 = Omc;
double r2493816 = r2493814 / r2493815;
double r2493817 = r2493816 * r2493816;
double r2493818 = r2493806 - r2493817;
double r2493819 = r2493813 * r2493818;
double r2493820 = sqrt(r2493819);
double r2493821 = asin(r2493820);
return r2493821;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.3
Simplified10.3
rmApplied div-inv10.3
Final simplification10.3
herbie shell --seed 2019124 +o rules:numerics
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))