\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 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot \left({\left(\sqrt{\frac{t}{\ell}}\right)}^{2} \cdot {\left(\sqrt{\frac{t}{\ell}}\right)}^{2}\right)}}\right)double f(double t, double l, double Om, double Omc) {
double r74054 = 1.0;
double r74055 = Om;
double r74056 = Omc;
double r74057 = r74055 / r74056;
double r74058 = 2.0;
double r74059 = pow(r74057, r74058);
double r74060 = r74054 - r74059;
double r74061 = t;
double r74062 = l;
double r74063 = r74061 / r74062;
double r74064 = pow(r74063, r74058);
double r74065 = r74058 * r74064;
double r74066 = r74054 + r74065;
double r74067 = r74060 / r74066;
double r74068 = sqrt(r74067);
double r74069 = asin(r74068);
return r74069;
}
double f(double t, double l, double Om, double Omc) {
double r74070 = 1.0;
double r74071 = Om;
double r74072 = Omc;
double r74073 = r74071 / r74072;
double r74074 = 2.0;
double r74075 = pow(r74073, r74074);
double r74076 = r74070 - r74075;
double r74077 = t;
double r74078 = l;
double r74079 = r74077 / r74078;
double r74080 = sqrt(r74079);
double r74081 = pow(r74080, r74074);
double r74082 = r74081 * r74081;
double r74083 = r74074 * r74082;
double r74084 = r74070 + r74083;
double r74085 = r74076 / r74084;
double r74086 = sqrt(r74085);
double r74087 = asin(r74086);
return r74087;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 9.9
rmApplied add-sqr-sqrt10.0
Applied unpow-prod-down10.0
Final simplification10.0
herbie shell --seed 2020046
(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)))))))