Average Error: 0.4 → 0.4
Time: 15.3s
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 r16652647 = x;
        double r16652648 = y;
        double r16652649 = r16652648 - r16652647;
        double r16652650 = 6.0;
        double r16652651 = r16652649 * r16652650;
        double r16652652 = 2.0;
        double r16652653 = 3.0;
        double r16652654 = r16652652 / r16652653;
        double r16652655 = z;
        double r16652656 = r16652654 - r16652655;
        double r16652657 = r16652651 * r16652656;
        double r16652658 = r16652647 + r16652657;
        return r16652658;
}

double f(double x, double y, double z) {
        double r16652659 = 2.0;
        double r16652660 = 3.0;
        double r16652661 = r16652659 / r16652660;
        double r16652662 = y;
        double r16652663 = x;
        double r16652664 = r16652662 - r16652663;
        double r16652665 = 6.0;
        double r16652666 = r16652664 * r16652665;
        double r16652667 = r16652661 * r16652666;
        double r16652668 = z;
        double r16652669 = -r16652668;
        double r16652670 = r16652666 * r16652669;
        double r16652671 = r16652667 + r16652670;
        double r16652672 = r16652671 + r16652663;
        return r16652672;
}

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 2019162 
(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))))