Average Error: 0.4 → 0.2
Time: 22.4s
Precision: 64
\[x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\]
\[\left(\left(x + y \cdot 4\right) + 4 \cdot \left(-x\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(\left(x + y \cdot 4\right) + 4 \cdot \left(-x\right)\right) + \left(\left(y - x\right) \cdot 6\right) \cdot \left(-z\right)
double f(double x, double y, double z) {
        double r201861 = x;
        double r201862 = y;
        double r201863 = r201862 - r201861;
        double r201864 = 6.0;
        double r201865 = r201863 * r201864;
        double r201866 = 2.0;
        double r201867 = 3.0;
        double r201868 = r201866 / r201867;
        double r201869 = z;
        double r201870 = r201868 - r201869;
        double r201871 = r201865 * r201870;
        double r201872 = r201861 + r201871;
        return r201872;
}

double f(double x, double y, double z) {
        double r201873 = x;
        double r201874 = y;
        double r201875 = 4.0;
        double r201876 = r201874 * r201875;
        double r201877 = r201873 + r201876;
        double r201878 = -r201873;
        double r201879 = r201875 * r201878;
        double r201880 = r201877 + r201879;
        double r201881 = r201874 - r201873;
        double r201882 = 6.0;
        double r201883 = r201881 * r201882;
        double r201884 = z;
        double r201885 = -r201884;
        double r201886 = r201883 * r201885;
        double r201887 = r201880 + r201886;
        return r201887;
}

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. Taylor expanded around 0 0.2

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

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

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

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

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

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

    \[\leadsto \left(\left(x + y \cdot 4\right) + 4 \cdot \left(-x\right)\right) + \left(\left(y - x\right) \cdot 6\right) \cdot \left(-z\right)\]

Reproduce

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