Average Error: 0.4 → 0.2
Time: 11.0s
Precision: 64
\[x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\]
\[\left(x + \left(y - x\right) \cdot \left(\frac{2}{3} \cdot 6\right)\right) + \left(\left(y - x\right) \cdot 6\right) \cdot \left(-z\right)\]
x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)
\left(x + \left(y - x\right) \cdot \left(\frac{2}{3} \cdot 6\right)\right) + \left(\left(y - x\right) \cdot 6\right) \cdot \left(-z\right)
double f(double x, double y, double z) {
        double r491451 = x;
        double r491452 = y;
        double r491453 = r491452 - r491451;
        double r491454 = 6.0;
        double r491455 = r491453 * r491454;
        double r491456 = 2.0;
        double r491457 = 3.0;
        double r491458 = r491456 / r491457;
        double r491459 = z;
        double r491460 = r491458 - r491459;
        double r491461 = r491455 * r491460;
        double r491462 = r491451 + r491461;
        return r491462;
}

double f(double x, double y, double z) {
        double r491463 = x;
        double r491464 = y;
        double r491465 = r491464 - r491463;
        double r491466 = 2.0;
        double r491467 = 3.0;
        double r491468 = r491466 / r491467;
        double r491469 = 6.0;
        double r491470 = r491468 * r491469;
        double r491471 = r491465 * r491470;
        double r491472 = r491463 + r491471;
        double r491473 = r491465 * r491469;
        double r491474 = z;
        double r491475 = -r491474;
        double r491476 = r491473 * r491475;
        double r491477 = r491472 + r491476;
        return r491477;
}

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\right) \cdot \left(\frac{2}{3} - z\right)\]
  2. Using strategy rm
  3. Applied associate-*l*0.2

    \[\leadsto x + \color{blue}{\left(y - x\right) \cdot \left(6 \cdot \left(\frac{2}{3} - z\right)\right)}\]
  4. Using strategy rm
  5. Applied sub-neg0.2

    \[\leadsto x + \left(y - x\right) \cdot \left(6 \cdot \color{blue}{\left(\frac{2}{3} + \left(-z\right)\right)}\right)\]
  6. Applied distribute-lft-in0.2

    \[\leadsto x + \left(y - x\right) \cdot \color{blue}{\left(6 \cdot \frac{2}{3} + 6 \cdot \left(-z\right)\right)}\]
  7. Applied distribute-lft-in0.2

    \[\leadsto x + \color{blue}{\left(\left(y - x\right) \cdot \left(6 \cdot \frac{2}{3}\right) + \left(y - x\right) \cdot \left(6 \cdot \left(-z\right)\right)\right)}\]
  8. Applied associate-+r+0.2

    \[\leadsto \color{blue}{\left(x + \left(y - x\right) \cdot \left(6 \cdot \frac{2}{3}\right)\right) + \left(y - x\right) \cdot \left(6 \cdot \left(-z\right)\right)}\]
  9. Simplified0.2

    \[\leadsto \color{blue}{\left(x + \left(y - x\right) \cdot \left(\frac{2}{3} \cdot 6\right)\right)} + \left(y - x\right) \cdot \left(6 \cdot \left(-z\right)\right)\]
  10. Using strategy rm
  11. Applied associate-*r*0.2

    \[\leadsto \left(x + \left(y - x\right) \cdot \left(\frac{2}{3} \cdot 6\right)\right) + \color{blue}{\left(\left(y - x\right) \cdot 6\right) \cdot \left(-z\right)}\]
  12. Final simplification0.2

    \[\leadsto \left(x + \left(y - x\right) \cdot \left(\frac{2}{3} \cdot 6\right)\right) + \left(\left(y - x\right) \cdot 6\right) \cdot \left(-z\right)\]

Reproduce

herbie shell --seed 2020042 
(FPCore (x y z)
  :name "Data.Colour.RGBSpace.HSL:hsl from colour-2.3.3, D"
  :precision binary64
  (+ x (* (* (- y x) 6) (- (/ 2 3) z))))