Average Error: 31.7 → 31.7
Time: 1.4s
Precision: binary64
\[\sqrt{\left(r1 \cdot r1 + r2 \cdot r2\right) - \left(\left(2 \cdot r1\right) \cdot r2\right) \cdot \cos \left(a1 - a2\right)}\]
\[\sqrt{\left(r1 \cdot r1 + r2 \cdot r2\right) - \left(\left(2 \cdot r1\right) \cdot r2\right) \cdot \cos \left(a1 - a2\right)}\]
\sqrt{\left(r1 \cdot r1 + r2 \cdot r2\right) - \left(\left(2 \cdot r1\right) \cdot r2\right) \cdot \cos \left(a1 - a2\right)}
\sqrt{\left(r1 \cdot r1 + r2 \cdot r2\right) - \left(\left(2 \cdot r1\right) \cdot r2\right) \cdot \cos \left(a1 - a2\right)}
double code(double r1, double r2, double a1, double a2) {
	return ((double) sqrt(((double) (((double) (((double) (r1 * r1)) + ((double) (r2 * r2)))) - ((double) (((double) (((double) (2.0 * r1)) * r2)) * ((double) cos(((double) (a1 - a2))))))))));
}
double code(double r1, double r2, double a1, double a2) {
	return ((double) sqrt(((double) (((double) (((double) (r1 * r1)) + ((double) (r2 * r2)))) - ((double) (((double) (((double) (2.0 * r1)) * r2)) * ((double) cos(((double) (a1 - a2))))))))));
}

Error

Bits error versus r1

Bits error versus r2

Bits error versus a1

Bits error versus a2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 31.7

    \[\sqrt{\left(r1 \cdot r1 + r2 \cdot r2\right) - \left(\left(2 \cdot r1\right) \cdot r2\right) \cdot \cos \left(a1 - a2\right)}\]
  2. Final simplification31.7

    \[\leadsto \sqrt{\left(r1 \cdot r1 + r2 \cdot r2\right) - \left(\left(2 \cdot r1\right) \cdot r2\right) \cdot \cos \left(a1 - a2\right)}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (r1 r2 a1 a2)
  :name "(sqrt (- (+ (* r1 r1) (* r2 r2)) (* (* (* 2 r1) r2) (cos (- a1 a2)))))"
  :precision binary64
  (sqrt (- (+ (* r1 r1) (* r2 r2)) (* (* (* 2.0 r1) r2) (cos (- a1 a2))))))