Average Error: 0.0 → 0.0
Time: 1.8s
Precision: binary64
\[\left(\left(x1 \cdot x2 + y1 \cdot y2\right) + z1 \cdot z2\right) - d\]
\[\left(\left(x1 \cdot x2 + y1 \cdot y2\right) + z1 \cdot z2\right) - d\]
\left(\left(x1 \cdot x2 + y1 \cdot y2\right) + z1 \cdot z2\right) - d
\left(\left(x1 \cdot x2 + y1 \cdot y2\right) + z1 \cdot z2\right) - d
double code(double x1, double x2, double y1, double y2, double z1, double z2, double d) {
	return ((double) (((double) (((double) (((double) (x1 * x2)) + ((double) (y1 * y2)))) + ((double) (z1 * z2)))) - d));
}
double code(double x1, double x2, double y1, double y2, double z1, double z2, double d) {
	return ((double) (((double) (((double) (((double) (x1 * x2)) + ((double) (y1 * y2)))) + ((double) (z1 * z2)))) - d));
}

Error

Bits error versus x1

Bits error versus x2

Bits error versus y1

Bits error versus y2

Bits error versus z1

Bits error versus z2

Bits error versus d

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(\left(x1 \cdot x2 + y1 \cdot y2\right) + z1 \cdot z2\right) - d\]
  2. Final simplification0.0

    \[\leadsto \left(\left(x1 \cdot x2 + y1 \cdot y2\right) + z1 \cdot z2\right) - d\]

Reproduce

herbie shell --seed 2020153 
(FPCore (x1 x2 y1 y2 z1 z2 d)
  :name "(- (+ (+ (* x1 x2) (* y1 y2)) (* z1 z2)) d)"
  :precision binary64
  (- (+ (+ (* x1 x2) (* y1 y2)) (* z1 z2)) d))