x - y \cdot z
x - y \cdot z
(FPCore (x y z) :precision binary64 (- x (* y z)))
(FPCore (x y z) :precision binary64 (- x (* y z)))
double code(double x, double y, double z) {
return x - (y * z);
}
double code(double x, double y, double z) {
return x - (y * z);
}







Bits error versus x







Bits error versus y







Bits error versus z
Results
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
| Alternative 1 | |
|---|---|
| Error | 16.4 |
| Cost | 1361 |
| Alternative 2 | |
|---|---|
| Error | 26.6 |
| Cost | 64 |
| Alternative 3 | |
|---|---|
| Error | 61.8 |
| Cost | 64 |

Initial program 0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2021044
(FPCore (x y z)
:name "Diagrams.Solve.Tridiagonal:solveTriDiagonal from diagrams-solve-0.1, C"
:precision binary64
:herbie-target
(/ (+ x (* y z)) (/ (+ x (* y z)) (- x (* y z))))
(- x (* y z)))