Average Error: 0.2 → 0.2
Time: 4.5s
Precision: binary64
\[\left(\left(zy \cdot zy - zx \cdot zx\right) + cx\right) \cdot \left(\left(zy \cdot zy - zx \cdot zx\right) + cx\right) - \left(\left(zx \cdot zy + zy \cdot zx\right) + cy\right) \cdot \left(\left(zx \cdot zy + zy \cdot zx\right) + cy\right)\]
\[\left(\left(\left(\left(zy \cdot zy - zx \cdot zx\right) + cx\right) - zy \cdot \left(zx + zx\right)\right) - cy\right) \cdot \left(\left(\left(\left(zy \cdot zy - zx \cdot zx\right) + cx\right) + zy \cdot \left(zx + zx\right)\right) + cy\right)\]
\left(\left(zy \cdot zy - zx \cdot zx\right) + cx\right) \cdot \left(\left(zy \cdot zy - zx \cdot zx\right) + cx\right) - \left(\left(zx \cdot zy + zy \cdot zx\right) + cy\right) \cdot \left(\left(zx \cdot zy + zy \cdot zx\right) + cy\right)
\left(\left(\left(\left(zy \cdot zy - zx \cdot zx\right) + cx\right) - zy \cdot \left(zx + zx\right)\right) - cy\right) \cdot \left(\left(\left(\left(zy \cdot zy - zx \cdot zx\right) + cx\right) + zy \cdot \left(zx + zx\right)\right) + cy\right)
double code(double zy, double zx, double cx, double cy) {
	return ((double) (((double) (((double) (((double) (((double) (zy * zy)) - ((double) (zx * zx)))) + cx)) * ((double) (((double) (((double) (zy * zy)) - ((double) (zx * zx)))) + cx)))) - ((double) (((double) (((double) (((double) (zx * zy)) + ((double) (zy * zx)))) + cy)) * ((double) (((double) (((double) (zx * zy)) + ((double) (zy * zx)))) + cy))))));
}
double code(double zy, double zx, double cx, double cy) {
	return ((double) (((double) (((double) (((double) (((double) (((double) (zy * zy)) - ((double) (zx * zx)))) + cx)) - ((double) (zy * ((double) (zx + zx)))))) - cy)) * ((double) (((double) (((double) (((double) (((double) (zy * zy)) - ((double) (zx * zx)))) + cx)) + ((double) (zy * ((double) (zx + zx)))))) + cy))));
}

Error

Bits error versus zy

Bits error versus zx

Bits error versus cx

Bits error versus cy

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.2

    \[\left(\left(zy \cdot zy - zx \cdot zx\right) + cx\right) \cdot \left(\left(zy \cdot zy - zx \cdot zx\right) + cx\right) - \left(\left(zx \cdot zy + zy \cdot zx\right) + cy\right) \cdot \left(\left(zx \cdot zy + zy \cdot zx\right) + cy\right)\]
  2. Simplified0.2

    \[\leadsto \color{blue}{\left(\left(\left(\left(zy \cdot zy - zx \cdot zx\right) + cx\right) - zy \cdot \left(zx + zx\right)\right) - cy\right) \cdot \left(\left(\left(\left(zy \cdot zy - zx \cdot zx\right) + cx\right) + zy \cdot \left(zx + zx\right)\right) + cy\right)}\]
  3. Final simplification0.2

    \[\leadsto \left(\left(\left(\left(zy \cdot zy - zx \cdot zx\right) + cx\right) - zy \cdot \left(zx + zx\right)\right) - cy\right) \cdot \left(\left(\left(\left(zy \cdot zy - zx \cdot zx\right) + cx\right) + zy \cdot \left(zx + zx\right)\right) + cy\right)\]

Reproduce

herbie shell --seed 2020152 
(FPCore (zy zx cx cy)
  :name "(- (* (+ (- (* zy zy) (* zx zx)) cx) (+ (- (* zy zy) (* zx zx)) cx)) (* (+ (+ (* zx zy) (* zy zx)) cy) (+ (+ (* zx zy) (* zy zx)) cy)))"
  :precision binary64
  (- (* (+ (- (* zy zy) (* zx zx)) cx) (+ (- (* zy zy) (* zx zx)) cx)) (* (+ (+ (* zx zy) (* zy zx)) cy) (+ (+ (* zx zy) (* zy zx)) cy))))