{\left(2 \cdot \sin \left(\left(pi \cdot 0.5\right) \cdot \left(\frac{19912.127}{22050} \cdot {2}^{\left(x \cdot 10.666667 - 10.666667\right)}\right)\right)\right)}^{0.25}{\left(2 \cdot \sin \left(\left(pi \cdot 0.5\right) \cdot \left(\frac{19912.127}{22050} \cdot {2}^{\left(x \cdot 10.666667 - 10.666667\right)}\right)\right)\right)}^{0.25}double code(double pi, double x) {
return ((double) pow(((double) (2.0 * ((double) sin(((double) (((double) (pi * 0.5)) * ((double) (((double) (19912.127 / 22050.0)) * ((double) pow(2.0, ((double) (((double) (x * 10.666667)) - 10.666667)))))))))))), 0.25));
}
double code(double pi, double x) {
return ((double) pow(((double) (2.0 * ((double) sin(((double) (((double) (pi * 0.5)) * ((double) (((double) (19912.127 / 22050.0)) * ((double) pow(2.0, ((double) (((double) (x * 10.666667)) - 10.666667)))))))))))), 0.25));
}



Bits error versus pi



Bits error versus x
Results
Initial program 17.9
Final simplification17.9
herbie shell --seed 2020152
(FPCore (pi x)
:name "(pow (* 2.0 (sin (* (* pi 0.5) (* (/ 19912.127 22050.0) (pow 2.0 (- (* x 10.666667) 10.666667)))))) 0.25)"
:precision binary64
(pow (* 2.0 (sin (* (* pi 0.5) (* (/ 19912.127 22050.0) (pow 2.0 (- (* x 10.666667) 10.666667)))))) 0.25))