Average Error: 0.4 → 0.2
Time: 16.3s
Precision: 64
\[x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\]
\[\mathsf{fma}\left(y - x, 6 \cdot \mathsf{fma}\left(\sqrt{\frac{2}{3}}, \sqrt{\frac{2}{3}}, -z\right), x\right)\]
x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)
\mathsf{fma}\left(y - x, 6 \cdot \mathsf{fma}\left(\sqrt{\frac{2}{3}}, \sqrt{\frac{2}{3}}, -z\right), x\right)
double f(double x, double y, double z) {
        double r192731 = x;
        double r192732 = y;
        double r192733 = r192732 - r192731;
        double r192734 = 6.0;
        double r192735 = r192733 * r192734;
        double r192736 = 2.0;
        double r192737 = 3.0;
        double r192738 = r192736 / r192737;
        double r192739 = z;
        double r192740 = r192738 - r192739;
        double r192741 = r192735 * r192740;
        double r192742 = r192731 + r192741;
        return r192742;
}

double f(double x, double y, double z) {
        double r192743 = y;
        double r192744 = x;
        double r192745 = r192743 - r192744;
        double r192746 = 6.0;
        double r192747 = 2.0;
        double r192748 = 3.0;
        double r192749 = r192747 / r192748;
        double r192750 = sqrt(r192749);
        double r192751 = z;
        double r192752 = -r192751;
        double r192753 = fma(r192750, r192750, r192752);
        double r192754 = r192746 * r192753;
        double r192755 = fma(r192745, r192754, r192744);
        return r192755;
}

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

    \[\leadsto \color{blue}{\mathsf{fma}\left(y - x, 6 \cdot \left(\frac{2}{3} - z\right), x\right)}\]
  3. Using strategy rm
  4. Applied add-sqr-sqrt0.2

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

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

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

Reproduce

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