Average Error: 0.4 → 0.2
Time: 24.3s
Precision: 64
\[x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\]
\[\left(y - x\right) \cdot \left(\left(\frac{\frac{2}{\sqrt[3]{3}}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} - z\right) \cdot 6 + \left(\left(-z\right) + z\right) \cdot 6\right) + x\]
x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)
\left(y - x\right) \cdot \left(\left(\frac{\frac{2}{\sqrt[3]{3}}}{\sqrt[3]{3} \cdot \sqrt[3]{3}} - z\right) \cdot 6 + \left(\left(-z\right) + z\right) \cdot 6\right) + x
double f(double x, double y, double z) {
        double r193171 = x;
        double r193172 = y;
        double r193173 = r193172 - r193171;
        double r193174 = 6.0;
        double r193175 = r193173 * r193174;
        double r193176 = 2.0;
        double r193177 = 3.0;
        double r193178 = r193176 / r193177;
        double r193179 = z;
        double r193180 = r193178 - r193179;
        double r193181 = r193175 * r193180;
        double r193182 = r193171 + r193181;
        return r193182;
}

double f(double x, double y, double z) {
        double r193183 = y;
        double r193184 = x;
        double r193185 = r193183 - r193184;
        double r193186 = 2.0;
        double r193187 = 3.0;
        double r193188 = cbrt(r193187);
        double r193189 = r193186 / r193188;
        double r193190 = r193188 * r193188;
        double r193191 = r193189 / r193190;
        double r193192 = z;
        double r193193 = r193191 - r193192;
        double r193194 = 6.0;
        double r193195 = r193193 * r193194;
        double r193196 = -r193192;
        double r193197 = r193196 + r193192;
        double r193198 = r193197 * r193194;
        double r193199 = r193195 + r193198;
        double r193200 = r193185 * r193199;
        double r193201 = r193200 + r193184;
        return r193201;
}

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. 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 fma-udef0.2

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

    \[\leadsto \left(y - x\right) \cdot \left(6 \cdot \left(\frac{2}{3} - \color{blue}{\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}}\right)\right) + x\]
  7. Applied add-cube-cbrt0.6

    \[\leadsto \left(y - x\right) \cdot \left(6 \cdot \left(\frac{2}{\color{blue}{\left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \sqrt[3]{3}}} - \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}\right)\right) + x\]
  8. Applied *-un-lft-identity0.6

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

    \[\leadsto \left(y - x\right) \cdot \left(6 \cdot \left(\color{blue}{\frac{1}{\sqrt[3]{3} \cdot \sqrt[3]{3}} \cdot \frac{2}{\sqrt[3]{3}}} - \left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}\right)\right) + x\]
  10. Applied prod-diff0.6

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

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

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

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

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

Reproduce

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