Average Error: 0.0 → 0.0
Time: 2.0s
Precision: binary64
\[\left(\left(x \cdot x - 2 \cdot ux\right) - u \cdot u\right) - v \cdot v\]
\[\left(\left(x \cdot x - 2 \cdot ux\right) - u \cdot u\right) - v \cdot v\]
\left(\left(x \cdot x - 2 \cdot ux\right) - u \cdot u\right) - v \cdot v
\left(\left(x \cdot x - 2 \cdot ux\right) - u \cdot u\right) - v \cdot v
double code(double x, double ux, double u, double v) {
	return ((double) (((double) (((double) (((double) (x * x)) - ((double) (2.0 * ux)))) - ((double) (u * u)))) - ((double) (v * v))));
}
double code(double x, double ux, double u, double v) {
	return ((double) (((double) (((double) (((double) (x * x)) - ((double) (2.0 * ux)))) - ((double) (u * u)))) - ((double) (v * v))));
}

Error

Bits error versus x

Bits error versus ux

Bits error versus u

Bits error versus v

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(\left(x \cdot x - 2 \cdot ux\right) - u \cdot u\right) - v \cdot v\]
  2. Final simplification0.0

    \[\leadsto \left(\left(x \cdot x - 2 \cdot ux\right) - u \cdot u\right) - v \cdot v\]

Reproduce

herbie shell --seed 2020152 
(FPCore (x ux u v)
  :name "(- (- (- (* x x) (* 2 ux)) (* u u)) (* v v))"
  :precision binary64
  (- (- (- (* x x) (* 2.0 ux)) (* u u)) (* v v)))