Average Error: 25.4 → 0
Time: 1.3s
Precision: binary64
\[\frac{x \cdot \left(pow \cdot n\right) - y \cdot \left(pow \cdot n\right)}{x \cdot \left(pow \cdot \frac{n}{2}\right) - y \cdot \left(pow \cdot \frac{n}{2}\right)}\]
\[2\]
\frac{x \cdot \left(pow \cdot n\right) - y \cdot \left(pow \cdot n\right)}{x \cdot \left(pow \cdot \frac{n}{2}\right) - y \cdot \left(pow \cdot \frac{n}{2}\right)}
2
double code(double x, double pow, double n, double y) {
	return ((double) (((double) (((double) (x * ((double) (pow * n)))) - ((double) (y * ((double) (pow * n)))))) / ((double) (((double) (x * ((double) (pow * ((double) (n / 2.0)))))) - ((double) (y * ((double) (pow * ((double) (n / 2.0))))))))));
}
double code(double x, double pow, double n, double y) {
	return 2.0;
}

Error

Bits error versus x

Bits error versus pow

Bits error versus n

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 25.4

    \[\frac{x \cdot \left(pow \cdot n\right) - y \cdot \left(pow \cdot n\right)}{x \cdot \left(pow \cdot \frac{n}{2}\right) - y \cdot \left(pow \cdot \frac{n}{2}\right)}\]
  2. Simplified0

    \[\leadsto \color{blue}{2 \cdot 1}\]
  3. Final simplification0

    \[\leadsto 2\]

Reproduce

herbie shell --seed 2020153 
(FPCore (x pow n y)
  :name "(/ (- (* x (* pow n)) (* y (* pow n))) (- (* x (* pow (/ n 2))) (* y (* pow (/ n 2)))))"
  :precision binary64
  (/ (- (* x (* pow n)) (* y (* pow n))) (- (* x (* pow (/ n 2.0))) (* y (* pow (/ n 2.0))))))