double code(double x, double c, double s) {
return ((double) (((double) cos(((double) (2.0 * x)))) / ((double) (((double) pow(c, 2.0)) * ((double) (((double) (x * ((double) pow(s, 2.0)))) * x))))));
}
double code(double x, double c, double s) {
return ((double) (((double) cos(((double) (2.0 * x)))) / ((double) (((double) (x * ((double) pow(c, ((double) (2.0 / 2.0)))))) * ((double) (((double) (x * ((double) pow(s, ((double) (2.0 / 2.0)))))) * ((double) (((double) pow(c, ((double) (2.0 / 2.0)))) * ((double) pow(s, ((double) (2.0 / 2.0))))))))))));
}



Bits error versus x



Bits error versus c



Bits error versus s
Results
Initial program 28.0
rmApplied sqr-pow28.0
Applied associate-*l*23.4
Simplified19.8
rmApplied sqr-pow19.8
Applied associate-*r*13.6
rmApplied associate-*l*9.7
Simplified9.7
rmApplied associate-*r*9.2
Simplified9.2
Final simplification9.2
herbie shell --seed 2020191
(FPCore (x c s)
:name "mixedcos"
:precision binary64
(/ (cos (* 2.0 x)) (* (pow c 2.0) (* (* x (pow s 2.0)) x))))