\left(x + y\right) \cdot \left(z + 1\right)
\left(x + y\right) + z \cdot \left(x + y\right)
(FPCore (x y z) :precision binary64 (* (+ x y) (+ z 1.0)))
(FPCore (x y z) :precision binary64 (+ (+ x y) (* z (+ x y))))
double code(double x, double y, double z) {
return (x + y) * (z + 1.0);
}
double code(double x, double y, double z) {
return (x + y) + (z * (x + y));
}










Bits error versus x










Bits error versus y










Bits error versus z
Results
| Alternative 1 | |
|---|---|
| Error | 0.0 |
| Cost | 448 |
| Alternative 2 | |
|---|---|
| Error | 1.8 |
| Cost | 904 |
| Alternative 3 | |
|---|---|
| Error | 12.8 |
| Cost | 1476 |
| Alternative 4 | |
|---|---|
| Error | 46.0 |
| Cost | 520 |
| Alternative 5 | |
|---|---|
| Error | 51.2 |
| Cost | 192 |
| Alternative 6 | |
|---|---|
| Error | 61.9 |
| Cost | 64 |
| Alternative 7 | |
|---|---|
| Error | 61.9 |
| Cost | 64 |

Initial program 0.0
rmApplied distribute-rgt-in_binary64_10510.0
Simplified0.0
Simplified0.0
rmApplied pow1_binary64_11620.0
rmApplied pow1_binary64_11620.0
Applied pow1_binary64_11620.0
Applied pow-prod-down_binary64_11720.0
rmApplied *-un-lft-identity_binary64_11010.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2021014
(FPCore (x y z)
:name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, G"
:precision binary64
(* (+ x y) (+ z 1.0)))