\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(\left|\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right|\right)double f(double t, double l, double Om, double Omc) {
double r74179 = 1.0;
double r74180 = Om;
double r74181 = Omc;
double r74182 = r74180 / r74181;
double r74183 = 2.0;
double r74184 = pow(r74182, r74183);
double r74185 = r74179 - r74184;
double r74186 = t;
double r74187 = l;
double r74188 = r74186 / r74187;
double r74189 = pow(r74188, r74183);
double r74190 = r74183 * r74189;
double r74191 = r74179 + r74190;
double r74192 = r74185 / r74191;
double r74193 = sqrt(r74192);
double r74194 = asin(r74193);
return r74194;
}
double f(double t, double l, double Om, double Omc) {
double r74195 = 1.0;
double r74196 = Om;
double r74197 = Omc;
double r74198 = r74196 / r74197;
double r74199 = 2.0;
double r74200 = pow(r74198, r74199);
double r74201 = r74195 - r74200;
double r74202 = sqrt(r74201);
double r74203 = t;
double r74204 = l;
double r74205 = r74203 / r74204;
double r74206 = pow(r74205, r74199);
double r74207 = r74199 * r74206;
double r74208 = r74195 + r74207;
double r74209 = sqrt(r74208);
double r74210 = r74202 / r74209;
double r74211 = fabs(r74210);
double r74212 = asin(r74211);
return r74212;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.6
rmApplied add-sqr-sqrt10.7
Applied add-sqr-sqrt10.7
Applied times-frac10.7
Applied rem-sqrt-square10.7
Final simplification10.7
herbie shell --seed 2020045
(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)))))))