\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 - \log \left(e^{{\left(\frac{Om}{Omc}\right)}^{2}}\right)}{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right)double f(double t, double l, double Om, double Omc) {
double r63561 = 1.0;
double r63562 = Om;
double r63563 = Omc;
double r63564 = r63562 / r63563;
double r63565 = 2.0;
double r63566 = pow(r63564, r63565);
double r63567 = r63561 - r63566;
double r63568 = t;
double r63569 = l;
double r63570 = r63568 / r63569;
double r63571 = pow(r63570, r63565);
double r63572 = r63565 * r63571;
double r63573 = r63561 + r63572;
double r63574 = r63567 / r63573;
double r63575 = sqrt(r63574);
double r63576 = asin(r63575);
return r63576;
}
double f(double t, double l, double Om, double Omc) {
double r63577 = 1.0;
double r63578 = Om;
double r63579 = Omc;
double r63580 = r63578 / r63579;
double r63581 = 2.0;
double r63582 = pow(r63580, r63581);
double r63583 = exp(r63582);
double r63584 = log(r63583);
double r63585 = r63577 - r63584;
double r63586 = t;
double r63587 = l;
double r63588 = r63586 / r63587;
double r63589 = pow(r63588, r63581);
double r63590 = fma(r63581, r63589, r63577);
double r63591 = r63585 / r63590;
double r63592 = sqrt(r63591);
double r63593 = asin(r63592);
return r63593;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.3
Simplified10.3
rmApplied add-log-exp10.3
Final simplification10.3
herbie shell --seed 2019209 +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)))))))