Average Error: 0.4 → 0.4
Time: 18.0s
Precision: 64
\[x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\]
\[\left(x + \left(\left(y - x\right) \cdot 6\right) \cdot \frac{2}{3}\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(\left(y - x\right) \cdot 6\right) \cdot \frac{2}{3}\right) + \left(\left(y - x\right) \cdot 6\right) \cdot \left(-z\right)
double f(double x, double y, double z) {
        double r35877746 = x;
        double r35877747 = y;
        double r35877748 = r35877747 - r35877746;
        double r35877749 = 6.0;
        double r35877750 = r35877748 * r35877749;
        double r35877751 = 2.0;
        double r35877752 = 3.0;
        double r35877753 = r35877751 / r35877752;
        double r35877754 = z;
        double r35877755 = r35877753 - r35877754;
        double r35877756 = r35877750 * r35877755;
        double r35877757 = r35877746 + r35877756;
        return r35877757;
}

double f(double x, double y, double z) {
        double r35877758 = x;
        double r35877759 = y;
        double r35877760 = r35877759 - r35877758;
        double r35877761 = 6.0;
        double r35877762 = r35877760 * r35877761;
        double r35877763 = 2.0;
        double r35877764 = 3.0;
        double r35877765 = r35877763 / r35877764;
        double r35877766 = r35877762 * r35877765;
        double r35877767 = r35877758 + r35877766;
        double r35877768 = z;
        double r35877769 = -r35877768;
        double r35877770 = r35877762 * r35877769;
        double r35877771 = r35877767 + r35877770;
        return r35877771;
}

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 sub-neg0.4

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

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

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

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

Reproduce

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