\left(avx \cdot avx + avy \cdot avy\right) + avz \cdot avz
\left(avx \cdot avx + avy \cdot avy\right) + avz \cdot avz
double code(double avx, double avy, double avz) {
return ((double) (((double) (((double) (avx * avx)) + ((double) (avy * avy)))) + ((double) (avz * avz))));
}
double code(double avx, double avy, double avz) {
return ((double) (((double) (((double) (avx * avx)) + ((double) (avy * avy)))) + ((double) (avz * avz))));
}



Bits error versus avx



Bits error versus avy



Bits error versus avz
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 2020153
(FPCore (avx avy avz)
:name "(+ (+ (* avx avx) (* avy avy)) (* avz avz))"
:precision binary64
(+ (+ (* avx avx) (* avy avy)) (* avz avz)))