Average Error: 12.7 → 12.7
Time: 1.1s
Precision: binary64
\[\frac{1}{\left(a \cdot a + b \cdot b\right) - \left(c \cdot c + d \cdot d\right)}\]
\[\frac{1}{\left(a \cdot a + b \cdot b\right) - \left(c \cdot c + d \cdot d\right)}\]
\frac{1}{\left(a \cdot a + b \cdot b\right) - \left(c \cdot c + d \cdot d\right)}
\frac{1}{\left(a \cdot a + b \cdot b\right) - \left(c \cdot c + d \cdot d\right)}
double code(double a, double b, double c, double d) {
	return ((double) (1.0 / ((double) (((double) (((double) (a * a)) + ((double) (b * b)))) - ((double) (((double) (c * c)) + ((double) (d * d))))))));
}
double code(double a, double b, double c, double d) {
	return ((double) (1.0 / ((double) (((double) (((double) (a * a)) + ((double) (b * b)))) - ((double) (((double) (c * c)) + ((double) (d * d))))))));
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus d

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 12.7

    \[\frac{1}{\left(a \cdot a + b \cdot b\right) - \left(c \cdot c + d \cdot d\right)}\]
  2. Final simplification12.7

    \[\leadsto \frac{1}{\left(a \cdot a + b \cdot b\right) - \left(c \cdot c + d \cdot d\right)}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (a b c d)
  :name "(/ 1 (- (+ (* a a) (* b b)) (+ (* c c) (* d d))))"
  :precision binary64
  (/ 1.0 (- (+ (* a a) (* b b)) (+ (* c c) (* d d)))))