\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(\frac{\sqrt{1 - \log \left(e^{{\left(\frac{Om}{Omc}\right)}^{2}}\right)}}{\sqrt{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)double f(double t, double l, double Om, double Omc) {
double r64063 = 1.0;
double r64064 = Om;
double r64065 = Omc;
double r64066 = r64064 / r64065;
double r64067 = 2.0;
double r64068 = pow(r64066, r64067);
double r64069 = r64063 - r64068;
double r64070 = t;
double r64071 = l;
double r64072 = r64070 / r64071;
double r64073 = pow(r64072, r64067);
double r64074 = r64067 * r64073;
double r64075 = r64063 + r64074;
double r64076 = r64069 / r64075;
double r64077 = sqrt(r64076);
double r64078 = asin(r64077);
return r64078;
}
double f(double t, double l, double Om, double Omc) {
double r64079 = 1.0;
double r64080 = Om;
double r64081 = Omc;
double r64082 = r64080 / r64081;
double r64083 = 2.0;
double r64084 = pow(r64082, r64083);
double r64085 = exp(r64084);
double r64086 = log(r64085);
double r64087 = r64079 - r64086;
double r64088 = sqrt(r64087);
double r64089 = t;
double r64090 = l;
double r64091 = r64089 / r64090;
double r64092 = pow(r64091, r64083);
double r64093 = r64083 * r64092;
double r64094 = r64079 + r64093;
double r64095 = sqrt(r64094);
double r64096 = r64088 / r64095;
double r64097 = asin(r64096);
return r64097;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.7
rmApplied sqrt-div10.7
rmApplied add-log-exp10.7
Final simplification10.7
herbie shell --seed 2020056
(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)))))))