Average Error: 15.0 → 15.0
Time: 1.6s
Precision: binary64
\[\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}}\]
\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))))));
}

Error

Bits error versus alpha

Bits error versus NdotH

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 15.0

    \[\frac{{\alpha}^{2}}{\pi \cdot {\left({NdotH}^{2} \cdot \left({\alpha}^{2} - 1\right) + 1\right)}^{2}}\]
  2. Final simplification15.0

    \[\leadsto \frac{{\alpha}^{2}}{\pi \cdot {\left({NdotH}^{2} \cdot \left({\alpha}^{2} - 1\right) + 1\right)}^{2}}\]

Reproduce

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))))