Average Error: 0.0 → 0.0
Time: 1.3s
Precision: binary64
\[\left(\left|x\right| \cdot \left|x\right| - \left|y\right| \cdot \left|y\right|\right) + a\]
\[\left(\left|x\right| \cdot \left|x\right| - \left|y\right| \cdot \left|y\right|\right) + a\]
\left(\left|x\right| \cdot \left|x\right| - \left|y\right| \cdot \left|y\right|\right) + a
\left(\left|x\right| \cdot \left|x\right| - \left|y\right| \cdot \left|y\right|\right) + a
double code(double x, double y, double a) {
	return ((double) (((double) (((double) (((double) fabs(x)) * ((double) fabs(x)))) - ((double) (((double) fabs(y)) * ((double) fabs(y)))))) + a));
}
double code(double x, double y, double a) {
	return ((double) (((double) (((double) (((double) fabs(x)) * ((double) fabs(x)))) - ((double) (((double) fabs(y)) * ((double) fabs(y)))))) + a));
}

Error

Bits error versus x

Bits error versus y

Bits error versus a

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(\left|x\right| \cdot \left|x\right| - \left|y\right| \cdot \left|y\right|\right) + a\]
  2. Final simplification0.0

    \[\leadsto \left(\left|x\right| \cdot \left|x\right| - \left|y\right| \cdot \left|y\right|\right) + a\]

Reproduce

herbie shell --seed 2020153 
(FPCore (x y a)
  :name "(+ (- (* (fabs x) (fabs x)) (* (fabs y) (fabs y))) a)"
  :precision binary64
  (+ (- (* (fabs x) (fabs x)) (* (fabs y) (fabs y))) a))