Average Error: 25.7 → 25.7
Time: 4.3s
Precision: binary64
\[\left(\frac{\left(\left(-2\right) \cdot l1\right) \cdot p1}{{a}^{2}} - \frac{\left(2 \cdot l2\right) \cdot p2}{{a}^{2}}\right) - \frac{\left(2 \cdot l3\right) \cdot p3}{{b}^{2}}\]
\[\left(\frac{\left(\left(-2\right) \cdot l1\right) \cdot p1}{{a}^{2}} - \frac{\left(2 \cdot l2\right) \cdot p2}{{a}^{2}}\right) - \frac{\left(2 \cdot l3\right) \cdot p3}{{b}^{2}}\]

Error

Bits error versus l1

Bits error versus p1

Bits error versus a

Bits error versus l2

Bits error versus p2

Bits error versus l3

Bits error versus p3

Bits error versus b

Derivation

  1. Initial program 25.7

    \[\left(\frac{\left(\left(-2\right) \cdot l1\right) \cdot p1}{{a}^{2}} - \frac{\left(2 \cdot l2\right) \cdot p2}{{a}^{2}}\right) - \frac{\left(2 \cdot l3\right) \cdot p3}{{b}^{2}}\]
  2. Final simplification25.7

    \[\leadsto \left(\frac{\left(\left(-2\right) \cdot l1\right) \cdot p1}{{a}^{2}} - \frac{\left(2 \cdot l2\right) \cdot p2}{{a}^{2}}\right) - \frac{\left(2 \cdot l3\right) \cdot p3}{{b}^{2}}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (l1 p1 a l2 p2 l3 p3 b)
  :name "(- (- (/ (* (* (- 2) l1) p1) (pow a 2)) (/ (* (* 2 l2) p2) (pow a 2))) (/ (* (* 2 l3) p3) (pow b 2)))"
  :precision binary64
  (- (- (/ (* (* (neg 2.0) l1) p1) (pow a 2.0)) (/ (* (* 2.0 l2) p2) (pow a 2.0))) (/ (* (* 2.0 l3) p3) (pow b 2.0))))