Average Error: 1.5 → 0.6
Time: 3.2s
Precision: 64
\[\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\]
\[\left|\mathsf{fma}\left(4, \frac{1}{y}, \frac{x}{y}\right) - \frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}} \cdot z\right)\right|\]
\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|
\left|\mathsf{fma}\left(4, \frac{1}{y}, \frac{x}{y}\right) - \frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}} \cdot z\right)\right|
double f(double x, double y, double z) {
        double r29626 = x;
        double r29627 = 4.0;
        double r29628 = r29626 + r29627;
        double r29629 = y;
        double r29630 = r29628 / r29629;
        double r29631 = r29626 / r29629;
        double r29632 = z;
        double r29633 = r29631 * r29632;
        double r29634 = r29630 - r29633;
        double r29635 = fabs(r29634);
        return r29635;
}

double f(double x, double y, double z) {
        double r29636 = 4.0;
        double r29637 = 1.0;
        double r29638 = y;
        double r29639 = r29637 / r29638;
        double r29640 = x;
        double r29641 = r29640 / r29638;
        double r29642 = fma(r29636, r29639, r29641);
        double r29643 = cbrt(r29640);
        double r29644 = r29643 * r29643;
        double r29645 = cbrt(r29638);
        double r29646 = r29645 * r29645;
        double r29647 = r29644 / r29646;
        double r29648 = r29643 / r29645;
        double r29649 = z;
        double r29650 = r29648 * r29649;
        double r29651 = r29647 * r29650;
        double r29652 = r29642 - r29651;
        double r29653 = fabs(r29652);
        return r29653;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Derivation

  1. Initial program 1.5

    \[\left|\frac{x + 4}{y} - \frac{x}{y} \cdot z\right|\]
  2. Taylor expanded around 0 1.6

    \[\leadsto \left|\color{blue}{\left(4 \cdot \frac{1}{y} + \frac{x}{y}\right)} - \frac{x}{y} \cdot z\right|\]
  3. Simplified1.6

    \[\leadsto \left|\color{blue}{\mathsf{fma}\left(4, \frac{1}{y}, \frac{x}{y}\right)} - \frac{x}{y} \cdot z\right|\]
  4. Using strategy rm
  5. Applied add-cube-cbrt1.8

    \[\leadsto \left|\mathsf{fma}\left(4, \frac{1}{y}, \frac{x}{y}\right) - \frac{x}{\color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}}} \cdot z\right|\]
  6. Applied add-cube-cbrt1.9

    \[\leadsto \left|\mathsf{fma}\left(4, \frac{1}{y}, \frac{x}{y}\right) - \frac{\color{blue}{\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \sqrt[3]{x}}}{\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}} \cdot z\right|\]
  7. Applied times-frac1.9

    \[\leadsto \left|\mathsf{fma}\left(4, \frac{1}{y}, \frac{x}{y}\right) - \color{blue}{\left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \frac{\sqrt[3]{x}}{\sqrt[3]{y}}\right)} \cdot z\right|\]
  8. Applied associate-*l*0.6

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

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

Reproduce

herbie shell --seed 2020057 +o rules:numerics
(FPCore (x y z)
  :name "fabs fraction 1"
  :precision binary64
  (fabs (- (/ (+ x 4) y) (* (/ x y) z))))