\left(x \cdot x\right) \cdot \left(3 - x \cdot 2\right)
\left(\left(\frac{3 \cdot 3}{\frac{\left(x \cdot 2\right) \cdot \left(\left(x \cdot 2\right) \cdot \left(x \cdot 2\right)\right) + 3 \cdot \left(3 \cdot 3\right)}{x}} - \frac{\left(x \cdot 2\right) \cdot \left(x \cdot 2\right)}{\frac{\left(x \cdot 2\right) \cdot \left(\left(x \cdot 2\right) \cdot \left(x \cdot 2\right)\right) + 3 \cdot \left(3 \cdot 3\right)}{x}}\right) \cdot x\right) \cdot \left(\left(\left(x \cdot 2\right) \cdot \left(x \cdot 2\right) - \left(x \cdot 2\right) \cdot 3\right) + 3 \cdot 3\right)double f(double x) {
double r37620173 = x;
double r37620174 = r37620173 * r37620173;
double r37620175 = 3.0;
double r37620176 = 2.0;
double r37620177 = r37620173 * r37620176;
double r37620178 = r37620175 - r37620177;
double r37620179 = r37620174 * r37620178;
return r37620179;
}
double f(double x) {
double r37620180 = 3.0;
double r37620181 = r37620180 * r37620180;
double r37620182 = x;
double r37620183 = 2.0;
double r37620184 = r37620182 * r37620183;
double r37620185 = r37620184 * r37620184;
double r37620186 = r37620184 * r37620185;
double r37620187 = r37620180 * r37620181;
double r37620188 = r37620186 + r37620187;
double r37620189 = r37620188 / r37620182;
double r37620190 = r37620181 / r37620189;
double r37620191 = r37620185 / r37620189;
double r37620192 = r37620190 - r37620191;
double r37620193 = r37620192 * r37620182;
double r37620194 = r37620184 * r37620180;
double r37620195 = r37620185 - r37620194;
double r37620196 = r37620195 + r37620181;
double r37620197 = r37620193 * r37620196;
return r37620197;
}




Bits error versus x
Results
| Original | 0.2 |
|---|---|
| Target | 0.2 |
| Herbie | 0.3 |
Initial program 0.2
rmApplied associate-*l*0.2
rmApplied flip--0.2
Applied associate-*r/0.2
Simplified0.2
rmApplied flip3-+0.3
Applied associate-/r/0.3
Applied associate-*r*0.3
Simplified0.3
Final simplification0.3
herbie shell --seed 2019174
(FPCore (x)
:name "Data.Spline.Key:interpolateKeys from smoothie-0.4.0.2"
:herbie-target
(* x (* x (- 3.0 (* x 2.0))))
(* (* x x) (- 3.0 (* x 2.0))))