\sin^{-1} \left(\sqrt{\frac{1 - {\left(\frac{Om}{Omc}\right)}^{2}}{1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}}}\right)\mathsf{expm1}\left(\mathsf{log1p}\left(\sin^{-1} \left(\sqrt{\frac{1 \cdot 1 - {\left(\frac{Om}{Omc}\right)}^{2} \cdot {\left(\frac{Om}{Omc}\right)}^{2}}{\left(1 + 2 \cdot {\left(\frac{t}{\ell}\right)}^{2}\right) \cdot \left(1 + {\left(\frac{Om}{Omc}\right)}^{2}\right)}}\right)\right)\right)double f(double t, double l, double Om, double Omc) {
double r84022 = 1.0;
double r84023 = Om;
double r84024 = Omc;
double r84025 = r84023 / r84024;
double r84026 = 2.0;
double r84027 = pow(r84025, r84026);
double r84028 = r84022 - r84027;
double r84029 = t;
double r84030 = l;
double r84031 = r84029 / r84030;
double r84032 = pow(r84031, r84026);
double r84033 = r84026 * r84032;
double r84034 = r84022 + r84033;
double r84035 = r84028 / r84034;
double r84036 = sqrt(r84035);
double r84037 = asin(r84036);
return r84037;
}
double f(double t, double l, double Om, double Omc) {
double r84038 = 1.0;
double r84039 = r84038 * r84038;
double r84040 = Om;
double r84041 = Omc;
double r84042 = r84040 / r84041;
double r84043 = 2.0;
double r84044 = pow(r84042, r84043);
double r84045 = r84044 * r84044;
double r84046 = r84039 - r84045;
double r84047 = t;
double r84048 = l;
double r84049 = r84047 / r84048;
double r84050 = pow(r84049, r84043);
double r84051 = r84043 * r84050;
double r84052 = r84038 + r84051;
double r84053 = r84038 + r84044;
double r84054 = r84052 * r84053;
double r84055 = r84046 / r84054;
double r84056 = sqrt(r84055);
double r84057 = asin(r84056);
double r84058 = log1p(r84057);
double r84059 = expm1(r84058);
return r84059;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.3
rmApplied flip--10.3
Applied associate-/l/10.3
rmApplied expm1-log1p-u10.3
Final simplification10.3
herbie shell --seed 2019347 +o rules:numerics
(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)))))))