Average Error: 0.0 → 0.0
Time: 19.7s
Precision: 64
\[\frac{x - y}{z - y}\]
\[\mathsf{fma}\left(\frac{y}{z - y}, -1, \frac{y}{z - y}\right) + \left(\frac{z + y}{z - y} \cdot \frac{x}{z + y} - \frac{y}{z - y}\right)\]
\frac{x - y}{z - y}
\mathsf{fma}\left(\frac{y}{z - y}, -1, \frac{y}{z - y}\right) + \left(\frac{z + y}{z - y} \cdot \frac{x}{z + y} - \frac{y}{z - y}\right)
double f(double x, double y, double z) {
        double r29945768 = x;
        double r29945769 = y;
        double r29945770 = r29945768 - r29945769;
        double r29945771 = z;
        double r29945772 = r29945771 - r29945769;
        double r29945773 = r29945770 / r29945772;
        return r29945773;
}

double f(double x, double y, double z) {
        double r29945774 = y;
        double r29945775 = z;
        double r29945776 = r29945775 - r29945774;
        double r29945777 = r29945774 / r29945776;
        double r29945778 = -1.0;
        double r29945779 = fma(r29945777, r29945778, r29945777);
        double r29945780 = r29945775 + r29945774;
        double r29945781 = r29945780 / r29945776;
        double r29945782 = x;
        double r29945783 = r29945782 / r29945780;
        double r29945784 = r29945781 * r29945783;
        double r29945785 = r29945784 - r29945777;
        double r29945786 = r29945779 + r29945785;
        return r29945786;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Target

Original0.0
Target0.0
Herbie0.0
\[\frac{x}{z - y} - \frac{y}{z - y}\]

Derivation

  1. Initial program 0.0

    \[\frac{x - y}{z - y}\]
  2. Using strategy rm
  3. Applied div-sub0.0

    \[\leadsto \color{blue}{\frac{x}{z - y} - \frac{y}{z - y}}\]
  4. Using strategy rm
  5. Applied add-cube-cbrt0.3

    \[\leadsto \frac{x}{z - y} - \color{blue}{\left(\sqrt[3]{\frac{y}{z - y}} \cdot \sqrt[3]{\frac{y}{z - y}}\right) \cdot \sqrt[3]{\frac{y}{z - y}}}\]
  6. Applied flip--15.5

    \[\leadsto \frac{x}{\color{blue}{\frac{z \cdot z - y \cdot y}{z + y}}} - \left(\sqrt[3]{\frac{y}{z - y}} \cdot \sqrt[3]{\frac{y}{z - y}}\right) \cdot \sqrt[3]{\frac{y}{z - y}}\]
  7. Applied associate-/r/17.6

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

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

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

    \[\leadsto \left(\frac{x}{z + y} \cdot \frac{z + y}{z - y} - \frac{y}{z - y}\right) + \color{blue}{\mathsf{fma}\left(\frac{y}{z - y}, -1, \frac{y}{z - y}\right)}\]
  11. Final simplification0.0

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

Reproduce

herbie shell --seed 2019169 +o rules:numerics
(FPCore (x y z)
  :name "Graphics.Rasterific.Shading:$sgradientColorAt from Rasterific-0.6.1"

  :herbie-target
  (- (/ x (- z y)) (/ y (- z y)))

  (/ (- x y) (- z y)))