Average Error: 31.3 → 31.3
Time: 1.9s
Precision: binary64
\[\sqrt{\left(a - b \cdot \cos x\right) \cdot \left(a - b \cdot \cos x\right) + \left(b \cdot \sin x\right) \cdot \left(b \cdot \sin x\right)}\]
\[\sqrt{\left(a - b \cdot \cos x\right) \cdot \left(a - b \cdot \cos x\right) + \left(b \cdot \sin x\right) \cdot \left(b \cdot \sin x\right)}\]
\sqrt{\left(a - b \cdot \cos x\right) \cdot \left(a - b \cdot \cos x\right) + \left(b \cdot \sin x\right) \cdot \left(b \cdot \sin x\right)}
\sqrt{\left(a - b \cdot \cos x\right) \cdot \left(a - b \cdot \cos x\right) + \left(b \cdot \sin x\right) \cdot \left(b \cdot \sin x\right)}
double code(double a, double b, double x) {
	return ((double) sqrt(((double) (((double) (((double) (a - ((double) (b * ((double) cos(x)))))) * ((double) (a - ((double) (b * ((double) cos(x)))))))) + ((double) (((double) (b * ((double) sin(x)))) * ((double) (b * ((double) sin(x))))))))));
}
double code(double a, double b, double x) {
	return ((double) sqrt(((double) (((double) (((double) (a - ((double) (b * ((double) cos(x)))))) * ((double) (a - ((double) (b * ((double) cos(x)))))))) + ((double) (((double) (b * ((double) sin(x)))) * ((double) (b * ((double) sin(x))))))))));
}

Error

Bits error versus a

Bits error versus b

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 31.3

    \[\sqrt{\left(a - b \cdot \cos x\right) \cdot \left(a - b \cdot \cos x\right) + \left(b \cdot \sin x\right) \cdot \left(b \cdot \sin x\right)}\]
  2. Final simplification31.3

    \[\leadsto \sqrt{\left(a - b \cdot \cos x\right) \cdot \left(a - b \cdot \cos x\right) + \left(b \cdot \sin x\right) \cdot \left(b \cdot \sin x\right)}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (a b x)
  :name "(sqrt (+ (* (- a (* b (cos x))) (- a (* b (cos x)))) (* (* b (sin x)) (* b (sin x)))))"
  :precision binary64
  (sqrt (+ (* (- a (* b (cos x))) (- a (* b (cos x)))) (* (* b (sin x)) (* b (sin x))))))