Average Error: 0.0 → 0.0
Time: 1.5s
Precision: binary64
\[\left(vect0 \cdot vect0 + vect1 \cdot vect1\right) + vect2 \cdot vect2\]
\[\left(vect0 \cdot vect0 + vect1 \cdot vect1\right) + vect2 \cdot vect2\]
\left(vect0 \cdot vect0 + vect1 \cdot vect1\right) + vect2 \cdot vect2
\left(vect0 \cdot vect0 + vect1 \cdot vect1\right) + vect2 \cdot vect2
double code(double vect0, double vect1, double vect2) {
	return ((double) (((double) (((double) (vect0 * vect0)) + ((double) (vect1 * vect1)))) + ((double) (vect2 * vect2))));
}
double code(double vect0, double vect1, double vect2) {
	return ((double) (((double) (((double) (vect0 * vect0)) + ((double) (vect1 * vect1)))) + ((double) (vect2 * vect2))));
}

Error

Bits error versus vect0

Bits error versus vect1

Bits error versus vect2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(vect0 \cdot vect0 + vect1 \cdot vect1\right) + vect2 \cdot vect2\]
  2. Final simplification0.0

    \[\leadsto \left(vect0 \cdot vect0 + vect1 \cdot vect1\right) + vect2 \cdot vect2\]

Reproduce

herbie shell --seed 2020153 
(FPCore (vect0 vect1 vect2)
  :name "(+ (+ (* vect0 vect0) (* vect1 vect1)) (* vect2 vect2))"
  :precision binary64
  (+ (+ (* vect0 vect0) (* vect1 vect1)) (* vect2 vect2)))