Average Error: 0.0 → 0.0
Time: 10.1s
Precision: binary64
\[\left(\left(\left(\left(\left(\left(\left({a}^{2} + \left(2 \cdot a\right) \cdot {x}^{2}\right) - \left(2 \cdot a\right) \cdot {y}^{2}\right) + a\right) - {b}^{2}\right) - \left(\left(4 \cdot b\right) \cdot x\right) \cdot y\right) + {x}^{4}\right) - \left(6 \cdot {x}^{2}\right) \cdot {y}^{2}\right) + {y}^{4}\]
\[\left(\left(\left(\left(\left(\left(\left({a}^{2} + \left(2 \cdot a\right) \cdot {x}^{2}\right) - \left(2 \cdot a\right) \cdot {y}^{2}\right) + a\right) - {b}^{2}\right) - \left(\left(4 \cdot b\right) \cdot x\right) \cdot y\right) + {x}^{4}\right) - \left(6 \cdot {x}^{2}\right) \cdot {y}^{2}\right) + {y}^{4}\]
\left(\left(\left(\left(\left(\left(\left({a}^{2} + \left(2 \cdot a\right) \cdot {x}^{2}\right) - \left(2 \cdot a\right) \cdot {y}^{2}\right) + a\right) - {b}^{2}\right) - \left(\left(4 \cdot b\right) \cdot x\right) \cdot y\right) + {x}^{4}\right) - \left(6 \cdot {x}^{2}\right) \cdot {y}^{2}\right) + {y}^{4}
\left(\left(\left(\left(\left(\left(\left({a}^{2} + \left(2 \cdot a\right) \cdot {x}^{2}\right) - \left(2 \cdot a\right) \cdot {y}^{2}\right) + a\right) - {b}^{2}\right) - \left(\left(4 \cdot b\right) \cdot x\right) \cdot y\right) + {x}^{4}\right) - \left(6 \cdot {x}^{2}\right) \cdot {y}^{2}\right) + {y}^{4}
double code(double a, double x, double y, double b) {
	return ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) pow(a, 2.0)) + ((double) (((double) (2.0 * a)) * ((double) pow(x, 2.0)))))) - ((double) (((double) (2.0 * a)) * ((double) pow(y, 2.0)))))) + a)) - ((double) pow(b, 2.0)))) - ((double) (((double) (((double) (4.0 * b)) * x)) * y)))) + ((double) pow(x, 4.0)))) - ((double) (((double) (6.0 * ((double) pow(x, 2.0)))) * ((double) pow(y, 2.0)))))) + ((double) pow(y, 4.0))));
}
double code(double a, double x, double y, double b) {
	return ((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) (((double) pow(a, 2.0)) + ((double) (((double) (2.0 * a)) * ((double) pow(x, 2.0)))))) - ((double) (((double) (2.0 * a)) * ((double) pow(y, 2.0)))))) + a)) - ((double) pow(b, 2.0)))) - ((double) (((double) (((double) (4.0 * b)) * x)) * y)))) + ((double) pow(x, 4.0)))) - ((double) (((double) (6.0 * ((double) pow(x, 2.0)))) * ((double) pow(y, 2.0)))))) + ((double) pow(y, 4.0))));
}

Error

Bits error versus a

Bits error versus x

Bits error versus y

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(\left(\left(\left(\left(\left(\left({a}^{2} + \left(2 \cdot a\right) \cdot {x}^{2}\right) - \left(2 \cdot a\right) \cdot {y}^{2}\right) + a\right) - {b}^{2}\right) - \left(\left(4 \cdot b\right) \cdot x\right) \cdot y\right) + {x}^{4}\right) - \left(6 \cdot {x}^{2}\right) \cdot {y}^{2}\right) + {y}^{4}\]
  2. Final simplification0.0

    \[\leadsto \left(\left(\left(\left(\left(\left(\left({a}^{2} + \left(2 \cdot a\right) \cdot {x}^{2}\right) - \left(2 \cdot a\right) \cdot {y}^{2}\right) + a\right) - {b}^{2}\right) - \left(\left(4 \cdot b\right) \cdot x\right) \cdot y\right) + {x}^{4}\right) - \left(6 \cdot {x}^{2}\right) \cdot {y}^{2}\right) + {y}^{4}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (a x y b)
  :name "(+ (- (+ (- (- (+ (- (+ (pow a 2) (* (* 2 a) (pow x 2))) (* (* 2 a) (pow y 2))) a) (pow b 2)) (* (* (* 4 b) x) y)) (pow x 4)) (* (* 6 (pow x 2)) (pow y 2))) (pow y 4))"
  :precision binary64
  (+ (- (+ (- (- (+ (- (+ (pow a 2.0) (* (* 2.0 a) (pow x 2.0))) (* (* 2.0 a) (pow y 2.0))) a) (pow b 2.0)) (* (* (* 4.0 b) x) y)) (pow x 4.0)) (* (* 6.0 (pow x 2.0)) (pow y 2.0))) (pow y 4.0)))