Average Error: 0.4 → 1.0
Time: 13.2s
Precision: 64
\[x + \left(\left(y - x\right) \cdot 6.0\right) \cdot \left(\frac{2.0}{3.0} - z\right)\]
\[\left(-z\right) \cdot \left(\left(y - x\right) \cdot 6.0\right) + \sqrt[3]{x + \frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right)} \cdot \left(\sqrt[3]{x + \frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right)} \cdot \sqrt[3]{x + \frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right)}\right)\]
x + \left(\left(y - x\right) \cdot 6.0\right) \cdot \left(\frac{2.0}{3.0} - z\right)
\left(-z\right) \cdot \left(\left(y - x\right) \cdot 6.0\right) + \sqrt[3]{x + \frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right)} \cdot \left(\sqrt[3]{x + \frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right)} \cdot \sqrt[3]{x + \frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right)}\right)
double f(double x, double y, double z) {
        double r6588257 = x;
        double r6588258 = y;
        double r6588259 = r6588258 - r6588257;
        double r6588260 = 6.0;
        double r6588261 = r6588259 * r6588260;
        double r6588262 = 2.0;
        double r6588263 = 3.0;
        double r6588264 = r6588262 / r6588263;
        double r6588265 = z;
        double r6588266 = r6588264 - r6588265;
        double r6588267 = r6588261 * r6588266;
        double r6588268 = r6588257 + r6588267;
        return r6588268;
}

double f(double x, double y, double z) {
        double r6588269 = z;
        double r6588270 = -r6588269;
        double r6588271 = y;
        double r6588272 = x;
        double r6588273 = r6588271 - r6588272;
        double r6588274 = 6.0;
        double r6588275 = r6588273 * r6588274;
        double r6588276 = r6588270 * r6588275;
        double r6588277 = 2.0;
        double r6588278 = 3.0;
        double r6588279 = r6588277 / r6588278;
        double r6588280 = r6588279 * r6588275;
        double r6588281 = r6588272 + r6588280;
        double r6588282 = cbrt(r6588281);
        double r6588283 = r6588282 * r6588282;
        double r6588284 = r6588282 * r6588283;
        double r6588285 = r6588276 + r6588284;
        return r6588285;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.4

    \[x + \left(\left(y - x\right) \cdot 6.0\right) \cdot \left(\frac{2.0}{3.0} - z\right)\]
  2. Using strategy rm
  3. Applied sub-neg0.4

    \[\leadsto x + \left(\left(y - x\right) \cdot 6.0\right) \cdot \color{blue}{\left(\frac{2.0}{3.0} + \left(-z\right)\right)}\]
  4. Applied distribute-rgt-in0.4

    \[\leadsto x + \color{blue}{\left(\frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right) + \left(-z\right) \cdot \left(\left(y - x\right) \cdot 6.0\right)\right)}\]
  5. Applied associate-+r+0.4

    \[\leadsto \color{blue}{\left(x + \frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right)\right) + \left(-z\right) \cdot \left(\left(y - x\right) \cdot 6.0\right)}\]
  6. Using strategy rm
  7. Applied add-cube-cbrt1.0

    \[\leadsto \color{blue}{\left(\sqrt[3]{x + \frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right)} \cdot \sqrt[3]{x + \frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right)}\right) \cdot \sqrt[3]{x + \frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right)}} + \left(-z\right) \cdot \left(\left(y - x\right) \cdot 6.0\right)\]
  8. Final simplification1.0

    \[\leadsto \left(-z\right) \cdot \left(\left(y - x\right) \cdot 6.0\right) + \sqrt[3]{x + \frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right)} \cdot \left(\sqrt[3]{x + \frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right)} \cdot \sqrt[3]{x + \frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right)}\right)\]

Reproduce

herbie shell --seed 2019156 
(FPCore (x y z)
  :name "Data.Colour.RGBSpace.HSL:hsl from colour-2.3.3, D"
  (+ x (* (* (- y x) 6.0) (- (/ 2.0 3.0) z))))