Average Error: 0.4 → 0.4
Time: 15.0s
Precision: 64
\[x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\]
\[\left(\frac{2}{3} \cdot \left(\left(y - x\right) \cdot 6\right) + \left(z \cdot \left(6 \cdot x\right) + \left(-6\right) \cdot \left(y \cdot z\right)\right)\right) + x\]
x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)
\left(\frac{2}{3} \cdot \left(\left(y - x\right) \cdot 6\right) + \left(z \cdot \left(6 \cdot x\right) + \left(-6\right) \cdot \left(y \cdot z\right)\right)\right) + x
double f(double x, double y, double z) {
        double r234886 = x;
        double r234887 = y;
        double r234888 = r234887 - r234886;
        double r234889 = 6.0;
        double r234890 = r234888 * r234889;
        double r234891 = 2.0;
        double r234892 = 3.0;
        double r234893 = r234891 / r234892;
        double r234894 = z;
        double r234895 = r234893 - r234894;
        double r234896 = r234890 * r234895;
        double r234897 = r234886 + r234896;
        return r234897;
}

double f(double x, double y, double z) {
        double r234898 = 2.0;
        double r234899 = 3.0;
        double r234900 = r234898 / r234899;
        double r234901 = y;
        double r234902 = x;
        double r234903 = r234901 - r234902;
        double r234904 = 6.0;
        double r234905 = r234903 * r234904;
        double r234906 = r234900 * r234905;
        double r234907 = z;
        double r234908 = r234904 * r234902;
        double r234909 = r234907 * r234908;
        double r234910 = -r234904;
        double r234911 = r234901 * r234907;
        double r234912 = r234910 * r234911;
        double r234913 = r234909 + r234912;
        double r234914 = r234906 + r234913;
        double r234915 = r234914 + r234902;
        return r234915;
}

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. Simplified0.4

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

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

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

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

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

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

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

Reproduce

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