\frac{{\alpha}^{2}}{\pi \cdot {\left({NdotH}^{2} \cdot \left({\alpha}^{2} - 1\right) + 1\right)}^{2}}\frac{{\alpha}^{2}}{\pi \cdot {\left({NdotH}^{2} \cdot \left({\alpha}^{2} - 1\right) + 1\right)}^{2}}double code(double alpha, double NdotH) {
return ((double) (((double) pow(alpha, 2.0)) / ((double) (((double) M_PI) * ((double) pow(((double) (((double) (((double) pow(NdotH, 2.0)) * ((double) (((double) pow(alpha, 2.0)) - 1.0)))) + 1.0)), 2.0))))));
}
double code(double alpha, double NdotH) {
return ((double) (((double) pow(alpha, 2.0)) / ((double) (((double) M_PI) * ((double) pow(((double) (((double) (((double) pow(NdotH, 2.0)) * ((double) (((double) pow(alpha, 2.0)) - 1.0)))) + 1.0)), 2.0))))));
}



Bits error versus alpha



Bits error versus NdotH
Results
Initial program 15.0
Final simplification15.0
herbie shell --seed 2020152
(FPCore (alpha NdotH)
:name "(/ (pow alpha 2) (* PI (pow (+ (* (pow NdotH 2) (- (pow alpha 2) 1)) 1) 2)))"
:precision binary64
(/ (pow alpha 2.0) (* PI (pow (+ (* (pow NdotH 2.0) (- (pow alpha 2.0) 1.0)) 1.0) 2.0))))