Average Error: 0.4 → 0.5
Time: 16.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(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - 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(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\right)
double f(double x, double y, double z) {
        double r234645 = x;
        double r234646 = y;
        double r234647 = r234646 - r234645;
        double r234648 = 6.0;
        double r234649 = r234647 * r234648;
        double r234650 = 2.0;
        double r234651 = 3.0;
        double r234652 = r234650 / r234651;
        double r234653 = z;
        double r234654 = r234652 - r234653;
        double r234655 = r234649 * r234654;
        double r234656 = r234645 + r234655;
        return r234656;
}

double f(double x, double y, double z) {
        double r234657 = x;
        double r234658 = cbrt(r234657);
        double r234659 = r234658 * r234658;
        double r234660 = y;
        double r234661 = r234660 - r234657;
        double r234662 = 6.0;
        double r234663 = r234661 * r234662;
        double r234664 = 2.0;
        double r234665 = 3.0;
        double r234666 = r234664 / r234665;
        double r234667 = z;
        double r234668 = r234666 - r234667;
        double r234669 = r234663 * r234668;
        double r234670 = fma(r234659, r234658, r234669);
        return r234670;
}

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 add-cube-cbrt0.5

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

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

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

Reproduce

herbie shell --seed 2019350 +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))))