Average Error: 0.0 → 0.0
Time: 856.0ms
Precision: binary64
\[rand1 \cdot rand1 + rand2 \cdot rand2\]
\[rand1 \cdot rand1 + rand2 \cdot rand2\]
rand1 \cdot rand1 + rand2 \cdot rand2
rand1 \cdot rand1 + rand2 \cdot rand2
double code(double rand1, double rand2) {
	return ((double) (((double) (rand1 * rand1)) + ((double) (rand2 * rand2))));
}
double code(double rand1, double rand2) {
	return ((double) (((double) (rand1 * rand1)) + ((double) (rand2 * rand2))));
}

Error

Bits error versus rand1

Bits error versus rand2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[rand1 \cdot rand1 + rand2 \cdot rand2\]
  2. Final simplification0.0

    \[\leadsto rand1 \cdot rand1 + rand2 \cdot rand2\]

Reproduce

herbie shell --seed 2020153 
(FPCore (rand1 rand2)
  :name "(+ (* rand1 rand1) (* rand2 rand2))"
  :precision binary64
  (+ (* rand1 rand1) (* rand2 rand2)))