Average Error: 0.4 → 0.2
Time: 3.3s
Precision: 64
\[x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\]
\[\left(x + \left(\frac{2}{3} \cdot 6\right) \cdot \left(y - 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(x + \left(\frac{2}{3} \cdot 6\right) \cdot \left(y - x\right)\right) + \left(\left(y - x\right) \cdot 6\right) \cdot \left(-z\right)
double f(double x, double y, double z) {
        double r264214 = x;
        double r264215 = y;
        double r264216 = r264215 - r264214;
        double r264217 = 6.0;
        double r264218 = r264216 * r264217;
        double r264219 = 2.0;
        double r264220 = 3.0;
        double r264221 = r264219 / r264220;
        double r264222 = z;
        double r264223 = r264221 - r264222;
        double r264224 = r264218 * r264223;
        double r264225 = r264214 + r264224;
        return r264225;
}

double f(double x, double y, double z) {
        double r264226 = x;
        double r264227 = 2.0;
        double r264228 = 3.0;
        double r264229 = r264227 / r264228;
        double r264230 = 6.0;
        double r264231 = r264229 * r264230;
        double r264232 = y;
        double r264233 = r264232 - r264226;
        double r264234 = r264231 * r264233;
        double r264235 = r264226 + r264234;
        double r264236 = r264233 * r264230;
        double r264237 = z;
        double r264238 = -r264237;
        double r264239 = r264236 * r264238;
        double r264240 = r264235 + r264239;
        return r264240;
}

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 associate-*l*0.2

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

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

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

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

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

    \[\leadsto \color{blue}{\left(x + \left(\frac{2}{3} \cdot 6\right) \cdot \left(y - x\right)\right)} + \left(y - x\right) \cdot \left(6 \cdot \left(-z\right)\right)\]
  10. Using strategy rm
  11. Applied associate-*r*0.2

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

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

Reproduce

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