\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}}{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right)double f(double t, double l, double Om, double Omc) {
double r2556037 = 1.0;
double r2556038 = Om;
double r2556039 = Omc;
double r2556040 = r2556038 / r2556039;
double r2556041 = 2.0;
double r2556042 = pow(r2556040, r2556041);
double r2556043 = r2556037 - r2556042;
double r2556044 = t;
double r2556045 = l;
double r2556046 = r2556044 / r2556045;
double r2556047 = pow(r2556046, r2556041);
double r2556048 = r2556041 * r2556047;
double r2556049 = r2556037 + r2556048;
double r2556050 = r2556043 / r2556049;
double r2556051 = sqrt(r2556050);
double r2556052 = asin(r2556051);
return r2556052;
}
double f(double t, double l, double Om, double Omc) {
double r2556053 = 1.0;
double r2556054 = Om;
double r2556055 = Omc;
double r2556056 = r2556054 / r2556055;
double r2556057 = 2.0;
double r2556058 = pow(r2556056, r2556057);
double r2556059 = r2556053 - r2556058;
double r2556060 = t;
double r2556061 = l;
double r2556062 = r2556060 / r2556061;
double r2556063 = pow(r2556062, r2556057);
double r2556064 = fma(r2556057, r2556063, r2556053);
double r2556065 = r2556059 / r2556064;
double r2556066 = sqrt(r2556065);
double r2556067 = asin(r2556066);
return r2556067;
}



Bits error versus t



Bits error versus l



Bits error versus Om



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