2 \cdot \sqrt{\left(x \cdot y + x \cdot z\right) + y \cdot z}\sqrt{z \cdot y + \left(y \cdot x + x \cdot z\right)} \cdot 2double f(double x, double y, double z) {
double r31134314 = 2.0;
double r31134315 = x;
double r31134316 = y;
double r31134317 = r31134315 * r31134316;
double r31134318 = z;
double r31134319 = r31134315 * r31134318;
double r31134320 = r31134317 + r31134319;
double r31134321 = r31134316 * r31134318;
double r31134322 = r31134320 + r31134321;
double r31134323 = sqrt(r31134322);
double r31134324 = r31134314 * r31134323;
return r31134324;
}
double f(double x, double y, double z) {
double r31134325 = z;
double r31134326 = y;
double r31134327 = r31134325 * r31134326;
double r31134328 = x;
double r31134329 = r31134326 * r31134328;
double r31134330 = r31134328 * r31134325;
double r31134331 = r31134329 + r31134330;
double r31134332 = r31134327 + r31134331;
double r31134333 = sqrt(r31134332);
double r31134334 = 2.0;
double r31134335 = r31134333 * r31134334;
return r31134335;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 19.5 |
|---|---|
| Target | 18.5 |
| Herbie | 19.5 |
Initial program 19.5
Final simplification19.5
herbie shell --seed 2019192
(FPCore (x y z)
:name "Diagrams.TwoD.Apollonian:descartes from diagrams-contrib-1.3.0.5"
:herbie-target
(if (< z 7.636950090573675e+176) (* 2.0 (sqrt (+ (* (+ x y) z) (* x y)))) (* (* (+ (* 0.25 (* (* (pow y -0.75) (* (pow z -0.75) x)) (+ y z))) (* (pow z 0.25) (pow y 0.25))) (+ (* 0.25 (* (* (pow y -0.75) (* (pow z -0.75) x)) (+ y z))) (* (pow z 0.25) (pow y 0.25)))) 2.0))
(* 2.0 (sqrt (+ (+ (* x y) (* x z)) (* y z)))))