Average Error: 0.4 → 0.3
Time: 11.5s
Precision: 64
\[x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\]
\[\mathsf{fma}\left(\sqrt[3]{x} \cdot \sqrt[3]{x}, \sqrt[3]{x}, \left(y - x\right) \cdot \left(4 - 6 \cdot z\right)\right)\]
x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)
\mathsf{fma}\left(\sqrt[3]{x} \cdot \sqrt[3]{x}, \sqrt[3]{x}, \left(y - x\right) \cdot \left(4 - 6 \cdot z\right)\right)
double f(double x, double y, double z) {
        double r219476 = x;
        double r219477 = y;
        double r219478 = r219477 - r219476;
        double r219479 = 6.0;
        double r219480 = r219478 * r219479;
        double r219481 = 2.0;
        double r219482 = 3.0;
        double r219483 = r219481 / r219482;
        double r219484 = z;
        double r219485 = r219483 - r219484;
        double r219486 = r219480 * r219485;
        double r219487 = r219476 + r219486;
        return r219487;
}

double f(double x, double y, double z) {
        double r219488 = x;
        double r219489 = cbrt(r219488);
        double r219490 = r219489 * r219489;
        double r219491 = y;
        double r219492 = r219491 - r219488;
        double r219493 = 4.0;
        double r219494 = 6.0;
        double r219495 = z;
        double r219496 = r219494 * r219495;
        double r219497 = r219493 - r219496;
        double r219498 = r219492 * r219497;
        double r219499 = fma(r219490, r219489, r219498);
        return r219499;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

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

    \[\leadsto x + \left(y - x\right) \cdot \color{blue}{\left(\left(\frac{2}{3} - z\right) \cdot 6\right)}\]
  5. Taylor expanded around 0 0.2

    \[\leadsto x + \left(y - x\right) \cdot \color{blue}{\left(4 - 6 \cdot z\right)}\]
  6. Using strategy rm
  7. Applied add-cube-cbrt0.3

    \[\leadsto \color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}} + \left(y - x\right) \cdot \left(4 - 6 \cdot z\right)\]
  8. Applied fma-def0.3

    \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{x} \cdot \sqrt[3]{x}, \sqrt[3]{x}, \left(y - x\right) \cdot \left(4 - 6 \cdot z\right)\right)}\]
  9. Final simplification0.3

    \[\leadsto \mathsf{fma}\left(\sqrt[3]{x} \cdot \sqrt[3]{x}, \sqrt[3]{x}, \left(y - x\right) \cdot \left(4 - 6 \cdot z\right)\right)\]

Reproduce

herbie shell --seed 2020045 +o rules:numerics
(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))))