x - y \cdot z
\left(x + y \cdot z\right) \cdot \frac{x - y \cdot z}{x + y \cdot z}double f(double x, double y, double z) {
double r1515828 = x;
double r1515829 = y;
double r1515830 = z;
double r1515831 = r1515829 * r1515830;
double r1515832 = r1515828 - r1515831;
return r1515832;
}
double f(double x, double y, double z) {
double r1515833 = x;
double r1515834 = y;
double r1515835 = z;
double r1515836 = r1515834 * r1515835;
double r1515837 = r1515833 + r1515836;
double r1515838 = r1515833 - r1515836;
double r1515839 = r1515838 / r1515837;
double r1515840 = r1515837 * r1515839;
return r1515840;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 0.0 |
|---|---|
| Target | 0.0 |
| Herbie | 0.0 |
Initial program 0.0
rmApplied flip--28.8
rmApplied *-un-lft-identity28.8
Applied difference-of-squares28.8
Applied times-frac0.0
Simplified0.0
Final simplification0.0
herbie shell --seed 2020057
(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)))