x + \left(\left(y - x\right) \cdot 6\right) \cdot z
x + \left(y \cdot \left(z \cdot 6\right) + \left(-x\right) \cdot \left(z \cdot 6\right)\right)
double f(double x, double y, double z) {
double r524680 = x;
double r524681 = y;
double r524682 = r524681 - r524680;
double r524683 = 6.0;
double r524684 = r524682 * r524683;
double r524685 = z;
double r524686 = r524684 * r524685;
double r524687 = r524680 + r524686;
return r524687;
}
double f(double x, double y, double z) {
double r524688 = x;
double r524689 = y;
double r524690 = z;
double r524691 = 6.0;
double r524692 = r524690 * r524691;
double r524693 = r524689 * r524692;
double r524694 = -r524688;
double r524695 = r524694 * r524692;
double r524696 = r524693 + r524695;
double r524697 = r524688 + r524696;
return r524697;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 0.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 0.2
rmApplied pow10.2
Applied pow10.2
Applied pow10.2
Applied pow-prod-down0.2
Applied pow-prod-down0.2
Simplified0.2
rmApplied sub-neg0.2
Applied distribute-lft-in0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019179
(FPCore (x y z)
:name "Data.Colour.RGBSpace.HSL:hsl from colour-2.3.3, E"
:herbie-target
(- x (* (* 6.0 z) (- x y)))
(+ x (* (* (- y x) 6.0) z)))