\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{\left(1 + \frac{Om}{Omc}\right) \cdot \frac{1 - \frac{Om}{Omc}}{\mathsf{fma}\left(2 \cdot \frac{t}{\ell}, \frac{t}{\ell}, 1\right)}}\right)\right)\right)double f(double t, double l, double Om, double Omc) {
double r1005745 = 1.0;
double r1005746 = Om;
double r1005747 = Omc;
double r1005748 = r1005746 / r1005747;
double r1005749 = 2.0;
double r1005750 = pow(r1005748, r1005749);
double r1005751 = r1005745 - r1005750;
double r1005752 = t;
double r1005753 = l;
double r1005754 = r1005752 / r1005753;
double r1005755 = pow(r1005754, r1005749);
double r1005756 = r1005749 * r1005755;
double r1005757 = r1005745 + r1005756;
double r1005758 = r1005751 / r1005757;
double r1005759 = sqrt(r1005758);
double r1005760 = asin(r1005759);
return r1005760;
}
double f(double t, double l, double Om, double Omc) {
double r1005761 = 1.0;
double r1005762 = Om;
double r1005763 = Omc;
double r1005764 = r1005762 / r1005763;
double r1005765 = r1005761 + r1005764;
double r1005766 = r1005761 - r1005764;
double r1005767 = 2.0;
double r1005768 = t;
double r1005769 = l;
double r1005770 = r1005768 / r1005769;
double r1005771 = r1005767 * r1005770;
double r1005772 = fma(r1005771, r1005770, r1005761);
double r1005773 = r1005766 / r1005772;
double r1005774 = r1005765 * r1005773;
double r1005775 = sqrt(r1005774);
double r1005776 = asin(r1005775);
double r1005777 = log1p(r1005776);
double r1005778 = expm1(r1005777);
return r1005778;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.7
Simplified10.7
rmApplied expm1-log1p-u10.7
rmApplied *-un-lft-identity10.7
Applied *-un-lft-identity10.7
Applied difference-of-squares10.7
Applied times-frac10.7
Simplified10.7
Final simplification10.7
herbie shell --seed 2019151 +o rules:numerics
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
(asin (sqrt (/ (- 1 (pow (/ Om Omc) 2)) (+ 1 (* 2 (pow (/ t l) 2)))))))