{\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(\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}double code(double l1, double p1, double a, double l2, double p2, double l3, double p3, double b) {
return ((double) pow(((double) (((double) (((double) (((double) (((double) (2.0 * l1)) * p1)) / ((double) pow(a, 2.0)))) + ((double) (((double) (((double) (2.0 * l2)) * p2)) / ((double) pow(a, 2.0)))))) + ((double) (((double) (((double) (2.0 * l3)) * p3)) / ((double) pow(b, 2.0)))))), 2.0));
}
double code(double l1, double p1, double a, double l2, double p2, double l3, double p3, double b) {
return ((double) pow(((double) (((double) (((double) (((double) (((double) (2.0 * l1)) * p1)) / ((double) pow(a, 2.0)))) + ((double) (((double) (((double) (2.0 * l2)) * p2)) / ((double) pow(a, 2.0)))))) + ((double) (((double) (((double) (2.0 * l3)) * p3)) / ((double) pow(b, 2.0)))))), 2.0));
}



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
Results
Initial program 17.6
Final simplification17.6
herbie shell --seed 2020152
(FPCore (l1 p1 a l2 p2 l3 p3 b)
:name "(pow (+ (+ (/ (* (* 2 l1) p1) (pow a 2)) (/ (* (* 2 l2) p2) (pow a 2))) (/ (* (* 2 l3) p3) (pow b 2))) 2)"
:precision binary64
(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))