double code(double t, double l, double Om, double Omc) {
return ((double) asin(((double) sqrt(((double) (((double) (1.0 - ((double) pow(((double) (Om / Omc)), 2.0)))) / ((double) (1.0 + ((double) (2.0 * ((double) pow(((double) (t / l)), 2.0))))))))))));
}
double code(double t, double l, double Om, double Omc) {
return ((double) asin(((double) (((double) sqrt(((double) (1.0 - ((double) pow(((double) (Om / Omc)), 2.0)))))) / ((double) sqrt(((double) (1.0 + ((double) (2.0 * ((double) pow(((double) (((double) (1.0 / l)) * t)), 2.0))))))))))));
}



Bits error versus t



Bits error versus l



Bits error versus Om



Bits error versus Omc
Results
Initial program 10.2
Taylor expanded around -inf 51.2
Simplified10.2
rmApplied sqrt-div10.3
Simplified10.2
Final simplification10.2
herbie shell --seed 2020181
(FPCore (t l Om Omc)
:name "Toniolo and Linder, Equation (2)"
:precision binary64
(asin (sqrt (/ (- 1.0 (pow (/ Om Omc) 2.0)) (+ 1.0 (* 2.0 (pow (/ t l) 2.0)))))))