\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 - {\left(\frac{Om}{Omc}\right)}^{2}}{\mathsf{fma}\left(2, {\left(\frac{t}{\ell}\right)}^{2}, 1\right)}}\right)\right)\right)double f(double t, double l, double Om, double Omc) {
double r48451 = 1.0;
double r48452 = Om;
double r48453 = Omc;
double r48454 = r48452 / r48453;
double r48455 = 2.0;
double r48456 = pow(r48454, r48455);
double r48457 = r48451 - r48456;
double r48458 = t;
double r48459 = l;
double r48460 = r48458 / r48459;
double r48461 = pow(r48460, r48455);
double r48462 = r48455 * r48461;
double r48463 = r48451 + r48462;
double r48464 = r48457 / r48463;
double r48465 = sqrt(r48464);
double r48466 = asin(r48465);
return r48466;
}
double f(double t, double l, double Om, double Omc) {
double r48467 = 1.0;
double r48468 = Om;
double r48469 = Omc;
double r48470 = r48468 / r48469;
double r48471 = 2.0;
double r48472 = pow(r48470, r48471);
double r48473 = r48467 - r48472;
double r48474 = t;
double r48475 = l;
double r48476 = r48474 / r48475;
double r48477 = pow(r48476, r48471);
double r48478 = fma(r48471, r48477, r48467);
double r48479 = r48473 / r48478;
double r48480 = sqrt(r48479);
double r48481 = asin(r48480);
double r48482 = log1p(r48481);
double r48483 = expm1(r48482);
return r48483;
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Initial program 10.1
Simplified10.1
rmApplied expm1-log1p-u10.1
Final simplification10.1
herbie shell --seed 2019199 +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)))))))