\frac{\left(m3 - \left(3 \cdot m1\right) \cdot \left(m2 - {m1}^{2}\right)\right) - {m1}^{3}}{{\left(m2 - {m1}^{2}\right)}^{\left(\frac{3}{2}\right)}}\frac{\left(m3 - \left(3 \cdot m1\right) \cdot \left(m2 - {m1}^{2}\right)\right) - {m1}^{3}}{{\left(m2 - {m1}^{2}\right)}^{\left(\frac{3}{2}\right)}}double code(double m3, double m1, double m2) {
return ((double) (((double) (((double) (m3 - ((double) (((double) (3.0 * m1)) * ((double) (m2 - ((double) pow(m1, 2.0)))))))) - ((double) pow(m1, 3.0)))) / ((double) pow(((double) (m2 - ((double) pow(m1, 2.0)))), ((double) (3.0 / 2.0))))));
}
double code(double m3, double m1, double m2) {
return ((double) (((double) (((double) (m3 - ((double) (((double) (3.0 * m1)) * ((double) (m2 - ((double) pow(m1, 2.0)))))))) - ((double) pow(m1, 3.0)))) / ((double) pow(((double) (m2 - ((double) pow(m1, 2.0)))), ((double) (3.0 / 2.0))))));
}



Bits error versus m3



Bits error versus m1



Bits error versus m2
Results
Initial program 16.5
Final simplification16.5
herbie shell --seed 2020152
(FPCore (m3 m1 m2)
:name "(/ (- (- m3 (* (* 3 m1) (- m2 (pow m1 2)))) (pow m1 3)) (pow (- m2 (pow m1 2)) (/ 3 2)))"
:precision binary64
(/ (- (- m3 (* (* 3.0 m1) (- m2 (pow m1 2.0)))) (pow m1 3.0)) (pow (- m2 (pow m1 2.0)) (/ 3.0 2.0))))