\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{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right|\right)double f(double t, double l, double Om, double Omc) {
double r31971 = 1.0;
double r31972 = Om;
double r31973 = Omc;
double r31974 = r31972 / r31973;
double r31975 = 2.0;
double r31976 = pow(r31974, r31975);
double r31977 = r31971 - r31976;
double r31978 = t;
double r31979 = l;
double r31980 = r31978 / r31979;
double r31981 = pow(r31980, r31975);
double r31982 = r31975 * r31981;
double r31983 = r31971 + r31982;
double r31984 = r31977 / r31983;
double r31985 = sqrt(r31984);
double r31986 = asin(r31985);
return r31986;
}
double f(double t, double l, double Om, double Omc) {
double r31987 = 1.0;
double r31988 = Om;
double r31989 = Omc;
double r31990 = r31988 / r31989;
double r31991 = 2.0;
double r31992 = pow(r31990, r31991);
double r31993 = r31987 - r31992;
double r31994 = sqrt(r31993);
double r31995 = t;
double r31996 = l;
double r31997 = r31995 / r31996;
double r31998 = pow(r31997, r31991);
double r31999 = fma(r31991, r31998, r31987);
double r32000 = sqrt(r31999);
double r32001 = r31994 / r32000;
double r32002 = fabs(r32001);
double r32003 = asin(r32002);
return r32003;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.0
Simplified10.0
rmApplied add-sqr-sqrt10.1
Applied add-sqr-sqrt10.1
Applied times-frac10.1
Applied rem-sqrt-square10.1
Final simplification10.1
herbie shell --seed 2019194 +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)))))))