Average Error: 0.4 → 0.2
Time: 19.8s
Precision: 64
\[x + \left(\left(y - x\right) \cdot 6.0\right) \cdot \left(\frac{2.0}{3.0} - z\right)\]
\[x + \left(y - x\right) \cdot \left(\left(\frac{2.0}{3.0} - z\right) \cdot 6.0\right)\]
x + \left(\left(y - x\right) \cdot 6.0\right) \cdot \left(\frac{2.0}{3.0} - z\right)
x + \left(y - x\right) \cdot \left(\left(\frac{2.0}{3.0} - z\right) \cdot 6.0\right)
double f(double x, double y, double z) {
        double r15835379 = x;
        double r15835380 = y;
        double r15835381 = r15835380 - r15835379;
        double r15835382 = 6.0;
        double r15835383 = r15835381 * r15835382;
        double r15835384 = 2.0;
        double r15835385 = 3.0;
        double r15835386 = r15835384 / r15835385;
        double r15835387 = z;
        double r15835388 = r15835386 - r15835387;
        double r15835389 = r15835383 * r15835388;
        double r15835390 = r15835379 + r15835389;
        return r15835390;
}

double f(double x, double y, double z) {
        double r15835391 = x;
        double r15835392 = y;
        double r15835393 = r15835392 - r15835391;
        double r15835394 = 2.0;
        double r15835395 = 3.0;
        double r15835396 = r15835394 / r15835395;
        double r15835397 = z;
        double r15835398 = r15835396 - r15835397;
        double r15835399 = 6.0;
        double r15835400 = r15835398 * r15835399;
        double r15835401 = r15835393 * r15835400;
        double r15835402 = r15835391 + r15835401;
        return r15835402;
}

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 associate-*l*0.2

    \[\leadsto x + \color{blue}{\left(y - x\right) \cdot \left(6.0 \cdot \left(\frac{2.0}{3.0} - z\right)\right)}\]
  4. Final simplification0.2

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

Reproduce

herbie shell --seed 2019163 
(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))))