\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(\frac{\sqrt{1 - {\left(\frac{Om}{Omc}\right)}^{2}}}{\sqrt{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right)double f(double t, double l, double Om, double Omc) {
double r61511 = 1.0;
double r61512 = Om;
double r61513 = Omc;
double r61514 = r61512 / r61513;
double r61515 = 2.0;
double r61516 = pow(r61514, r61515);
double r61517 = r61511 - r61516;
double r61518 = t;
double r61519 = l;
double r61520 = r61518 / r61519;
double r61521 = pow(r61520, r61515);
double r61522 = r61515 * r61521;
double r61523 = r61511 + r61522;
double r61524 = r61517 / r61523;
double r61525 = sqrt(r61524);
double r61526 = asin(r61525);
return r61526;
}
double f(double t, double l, double Om, double Omc) {
double r61527 = 1.0;
double r61528 = Om;
double r61529 = Omc;
double r61530 = r61528 / r61529;
double r61531 = 2.0;
double r61532 = pow(r61530, r61531);
double r61533 = r61527 - r61532;
double r61534 = sqrt(r61533);
double r61535 = t;
double r61536 = l;
double r61537 = r61535 / r61536;
double r61538 = pow(r61537, r61531);
double r61539 = fma(r61531, r61538, r61527);
double r61540 = sqrt(r61539);
double r61541 = r61534 / r61540;
double r61542 = asin(r61541);
return r61542;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.2
Simplified10.2
rmApplied sqrt-div10.3
Final simplification10.3
herbie shell --seed 2020047 +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)))))))