\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(\frac{t}{\ell}\right)}^{2}}}\right)double f(double t, double l, double Om, double Omc) {
double r51034 = 1.0;
double r51035 = Om;
double r51036 = Omc;
double r51037 = r51035 / r51036;
double r51038 = 2.0;
double r51039 = pow(r51037, r51038);
double r51040 = r51034 - r51039;
double r51041 = t;
double r51042 = l;
double r51043 = r51041 / r51042;
double r51044 = pow(r51043, r51038);
double r51045 = r51038 * r51044;
double r51046 = r51034 + r51045;
double r51047 = r51040 / r51046;
double r51048 = sqrt(r51047);
double r51049 = asin(r51048);
return r51049;
}
double f(double t, double l, double Om, double Omc) {
double r51050 = 1.0;
double r51051 = Om;
double r51052 = Omc;
double r51053 = r51051 / r51052;
double r51054 = 2.0;
double r51055 = pow(r51053, r51054);
double r51056 = r51050 - r51055;
double r51057 = t;
double r51058 = l;
double r51059 = r51057 / r51058;
double r51060 = pow(r51059, r51054);
double r51061 = r51054 * r51060;
double r51062 = r51050 + r51061;
double r51063 = r51056 / r51062;
double r51064 = sqrt(r51063);
double r51065 = asin(r51064);
return r51065;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.0
Final simplification10.0
herbie shell --seed 2019212
(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)))))))