Average Error: 0.4 → 0.4
Time: 40.8s
Precision: 64
\[x + \left(\left(y - x\right) \cdot 6.0\right) \cdot \left(\frac{2.0}{3.0} - z\right)\]
\[\left(\frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right) + \left(\left(y - x\right) \cdot 6.0\right) \cdot \left(-z\right)\right) + x\]
x + \left(\left(y - x\right) \cdot 6.0\right) \cdot \left(\frac{2.0}{3.0} - z\right)
\left(\frac{2.0}{3.0} \cdot \left(\left(y - x\right) \cdot 6.0\right) + \left(\left(y - x\right) \cdot 6.0\right) \cdot \left(-z\right)\right) + x
double f(double x, double y, double z) {
        double r17621774 = x;
        double r17621775 = y;
        double r17621776 = r17621775 - r17621774;
        double r17621777 = 6.0;
        double r17621778 = r17621776 * r17621777;
        double r17621779 = 2.0;
        double r17621780 = 3.0;
        double r17621781 = r17621779 / r17621780;
        double r17621782 = z;
        double r17621783 = r17621781 - r17621782;
        double r17621784 = r17621778 * r17621783;
        double r17621785 = r17621774 + r17621784;
        return r17621785;
}

double f(double x, double y, double z) {
        double r17621786 = 2.0;
        double r17621787 = 3.0;
        double r17621788 = r17621786 / r17621787;
        double r17621789 = y;
        double r17621790 = x;
        double r17621791 = r17621789 - r17621790;
        double r17621792 = 6.0;
        double r17621793 = r17621791 * r17621792;
        double r17621794 = r17621788 * r17621793;
        double r17621795 = z;
        double r17621796 = -r17621795;
        double r17621797 = r17621793 * r17621796;
        double r17621798 = r17621794 + r17621797;
        double r17621799 = r17621798 + r17621790;
        return r17621799;
}

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. Final simplification0.4

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

Reproduce

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