Average Error: 57.1 → 57.1
Time: 45.5s
Precision: binary64
\[\frac{\left(\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}}\right) - \sqrt{{\left(\left(\frac{\left(2 \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}}\right)}^{2} - \left(4 \cdot \left(\left(\frac{{l1}^{2}}{{a}^{2}} + \frac{{l2}^{2}}{{a}^{2}}\right) + \frac{{l3}^{2}}{{b}^{2}}\right)\right) \cdot \left(\left(\left(\left(-1\right) + \frac{{p1}^{2}}{{a}^{2}}\right) + \frac{{p2}^{2}}{{a}^{2}}\right) + \frac{{p3}^{2}}{{b}^{2}}\right)}}{2 \cdot \left(\left(\frac{{l1}^{2}}{{a}^{2}} + \frac{{l2}^{2}}{{a}^{2}}\right) + \frac{{l3}^{2}}{{b}^{2}}\right)}\]
\[\frac{\left(\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}}\right) - \sqrt{{\left(\left(\frac{\left(2 \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}}\right)}^{2} - \left(4 \cdot \left(\left(\frac{{l1}^{2}}{{a}^{2}} + \frac{{l2}^{2}}{{a}^{2}}\right) + \frac{{l3}^{2}}{{b}^{2}}\right)\right) \cdot \left(\left(\left(\left(-1\right) + \frac{{p1}^{2}}{{a}^{2}}\right) + \frac{{p2}^{2}}{{a}^{2}}\right) + \frac{{p3}^{2}}{{b}^{2}}\right)}}{2 \cdot \left(\left(\frac{{l1}^{2}}{{a}^{2}} + \frac{{l2}^{2}}{{a}^{2}}\right) + \frac{{l3}^{2}}{{b}^{2}}\right)}\]

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 57.1

    \[\frac{\left(\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}}\right) - \sqrt{{\left(\left(\frac{\left(2 \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}}\right)}^{2} - \left(4 \cdot \left(\left(\frac{{l1}^{2}}{{a}^{2}} + \frac{{l2}^{2}}{{a}^{2}}\right) + \frac{{l3}^{2}}{{b}^{2}}\right)\right) \cdot \left(\left(\left(\left(-1\right) + \frac{{p1}^{2}}{{a}^{2}}\right) + \frac{{p2}^{2}}{{a}^{2}}\right) + \frac{{p3}^{2}}{{b}^{2}}\right)}}{2 \cdot \left(\left(\frac{{l1}^{2}}{{a}^{2}} + \frac{{l2}^{2}}{{a}^{2}}\right) + \frac{{l3}^{2}}{{b}^{2}}\right)}\]
  2. Final simplification57.1

    \[\leadsto \frac{\left(\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}}\right) - \sqrt{{\left(\left(\frac{\left(2 \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}}\right)}^{2} - \left(4 \cdot \left(\left(\frac{{l1}^{2}}{{a}^{2}} + \frac{{l2}^{2}}{{a}^{2}}\right) + \frac{{l3}^{2}}{{b}^{2}}\right)\right) \cdot \left(\left(\left(\left(-1\right) + \frac{{p1}^{2}}{{a}^{2}}\right) + \frac{{p2}^{2}}{{a}^{2}}\right) + \frac{{p3}^{2}}{{b}^{2}}\right)}}{2 \cdot \left(\left(\frac{{l1}^{2}}{{a}^{2}} + \frac{{l2}^{2}}{{a}^{2}}\right) + \frac{{l3}^{2}}{{b}^{2}}\right)}\]

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))) (sqrt (- (pow (+ (+ (/ (* (* 2 l1) p1) (pow a 2)) (/ (* (* 2 l2) p2) (pow a 2))) (/ (* (* 2 l3) p3) (pow b 2))) 2) (* (* 4 (+ (+ (/ (pow l1 2) (pow a 2)) (/ (pow l2 2) (pow a 2))) (/ (pow l3 2) (pow b 2)))) (+ (+ (+ (- 1) (/ (pow p1 2) (pow a 2))) (/ (pow p2 2) (pow a 2))) (/ (pow p3 2) (pow b 2))))))) (* 2 (+ (+ (/ (pow l1 2) (pow a 2)) (/ (pow l2 2) (pow a 2))) (/ (pow l3 2) (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))) (sqrt (- (pow (+ (+ (/ (* (* 2.0 l1) p1) (pow a 2.0)) (/ (* (* 2.0 l2) p2) (pow a 2.0))) (/ (* (* 2.0 l3) p3) (pow b 2.0))) 2.0) (* (* 4.0 (+ (+ (/ (pow l1 2.0) (pow a 2.0)) (/ (pow l2 2.0) (pow a 2.0))) (/ (pow l3 2.0) (pow b 2.0)))) (+ (+ (+ (neg 1.0) (/ (pow p1 2.0) (pow a 2.0))) (/ (pow p2 2.0) (pow a 2.0))) (/ (pow p3 2.0) (pow b 2.0))))))) (* 2.0 (+ (+ (/ (pow l1 2.0) (pow a 2.0)) (/ (pow l2 2.0) (pow a 2.0))) (/ (pow l3 2.0) (pow b 2.0))))))