\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 r52466 = 1.0;
double r52467 = Om;
double r52468 = Omc;
double r52469 = r52467 / r52468;
double r52470 = 2.0;
double r52471 = pow(r52469, r52470);
double r52472 = r52466 - r52471;
double r52473 = t;
double r52474 = l;
double r52475 = r52473 / r52474;
double r52476 = pow(r52475, r52470);
double r52477 = r52470 * r52476;
double r52478 = r52466 + r52477;
double r52479 = r52472 / r52478;
double r52480 = sqrt(r52479);
double r52481 = asin(r52480);
return r52481;
}
double f(double t, double l, double Om, double Omc) {
double r52482 = 1.0;
double r52483 = Om;
double r52484 = Omc;
double r52485 = r52483 / r52484;
double r52486 = 2.0;
double r52487 = pow(r52485, r52486);
double r52488 = r52482 - r52487;
double r52489 = sqrt(r52488);
double r52490 = t;
double r52491 = l;
double r52492 = r52490 / r52491;
double r52493 = pow(r52492, r52486);
double r52494 = fma(r52486, r52493, r52482);
double r52495 = sqrt(r52494);
double r52496 = r52489 / r52495;
double r52497 = fabs(r52496);
double r52498 = asin(r52497);
return r52498;
}



Bits error versus t



Bits error versus l



Bits error versus Om



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