Average Error: 21.5 → 21.5
Time: 1.0s
Precision: binary64
\[\frac{\left(\left(a + b\right) - 1\right) \cdot \left(\left(a - b\right) - 1\right)}{\left(2 \cdot a - 1\right) \cdot \left(2 \cdot a - 3\right)}\]
\[\frac{\left(\left(a + b\right) - 1\right) \cdot \left(\left(a - b\right) - 1\right)}{\left(2 \cdot a - 1\right) \cdot \left(2 \cdot a - 3\right)}\]
\frac{\left(\left(a + b\right) - 1\right) \cdot \left(\left(a - b\right) - 1\right)}{\left(2 \cdot a - 1\right) \cdot \left(2 \cdot a - 3\right)}
\frac{\left(\left(a + b\right) - 1\right) \cdot \left(\left(a - b\right) - 1\right)}{\left(2 \cdot a - 1\right) \cdot \left(2 \cdot a - 3\right)}
double code(double a, double b) {
	return ((double) (((double) (((double) (((double) (a + b)) - 1.0)) * ((double) (((double) (a - b)) - 1.0)))) / ((double) (((double) (((double) (2.0 * a)) - 1.0)) * ((double) (((double) (2.0 * a)) - 3.0))))));
}
double code(double a, double b) {
	return ((double) (((double) (((double) (((double) (a + b)) - 1.0)) * ((double) (((double) (a - b)) - 1.0)))) / ((double) (((double) (((double) (2.0 * a)) - 1.0)) * ((double) (((double) (2.0 * a)) - 3.0))))));
}

Error

Bits error versus a

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 21.5

    \[\frac{\left(\left(a + b\right) - 1\right) \cdot \left(\left(a - b\right) - 1\right)}{\left(2 \cdot a - 1\right) \cdot \left(2 \cdot a - 3\right)}\]
  2. Final simplification21.5

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

Reproduce

herbie shell --seed 2020152 
(FPCore (a b)
  :name "(/ (* (- (+ a b) 1) (- (- a b) 1)) (* (- (* 2 a) 1) (- (* 2 a) 3)))"
  :precision binary64
  (/ (* (- (+ a b) 1.0) (- (- a b) 1.0)) (* (- (* 2.0 a) 1.0) (- (* 2.0 a) 3.0))))