Average Error: 10.5 → 0.1
Time: 16.7s
Precision: 64
\[\frac{x + y \cdot \left(z - x\right)}{z}\]
\[\begin{array}{l} \mathbf{if}\;x \le -3.8087548821516432 \cdot 10^{-124}:\\ \;\;\;\;\left(\left(\frac{x}{z} + y\right) - y \cdot \frac{x}{z}\right) + \frac{x}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \left(\left(-\frac{y}{\sqrt[3]{z}}\right) + \frac{y}{\sqrt[3]{z}}\right)\\ \mathbf{elif}\;x \le 4.59597403795728422 \cdot 10^{-24}:\\ \;\;\;\;\left(\frac{x}{z} + y\right) - \frac{x \cdot y}{z}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{x}{z} + y\right) - x \cdot \frac{y}{z}\\ \end{array}\]
\frac{x + y \cdot \left(z - x\right)}{z}
\begin{array}{l}
\mathbf{if}\;x \le -3.8087548821516432 \cdot 10^{-124}:\\
\;\;\;\;\left(\left(\frac{x}{z} + y\right) - y \cdot \frac{x}{z}\right) + \frac{x}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \left(\left(-\frac{y}{\sqrt[3]{z}}\right) + \frac{y}{\sqrt[3]{z}}\right)\\

\mathbf{elif}\;x \le 4.59597403795728422 \cdot 10^{-24}:\\
\;\;\;\;\left(\frac{x}{z} + y\right) - \frac{x \cdot y}{z}\\

\mathbf{else}:\\
\;\;\;\;\left(\frac{x}{z} + y\right) - x \cdot \frac{y}{z}\\

\end{array}
double f(double x, double y, double z) {
        double r858143 = x;
        double r858144 = y;
        double r858145 = z;
        double r858146 = r858145 - r858143;
        double r858147 = r858144 * r858146;
        double r858148 = r858143 + r858147;
        double r858149 = r858148 / r858145;
        return r858149;
}

double f(double x, double y, double z) {
        double r858150 = x;
        double r858151 = -3.808754882151643e-124;
        bool r858152 = r858150 <= r858151;
        double r858153 = z;
        double r858154 = r858150 / r858153;
        double r858155 = y;
        double r858156 = r858154 + r858155;
        double r858157 = r858155 * r858154;
        double r858158 = r858156 - r858157;
        double r858159 = cbrt(r858153);
        double r858160 = r858159 * r858159;
        double r858161 = r858150 / r858160;
        double r858162 = r858155 / r858159;
        double r858163 = -r858162;
        double r858164 = r858163 + r858162;
        double r858165 = r858161 * r858164;
        double r858166 = r858158 + r858165;
        double r858167 = 4.595974037957284e-24;
        bool r858168 = r858150 <= r858167;
        double r858169 = r858150 * r858155;
        double r858170 = r858169 / r858153;
        double r858171 = r858156 - r858170;
        double r858172 = r858155 / r858153;
        double r858173 = r858150 * r858172;
        double r858174 = r858156 - r858173;
        double r858175 = r858168 ? r858171 : r858174;
        double r858176 = r858152 ? r858166 : r858175;
        return r858176;
}

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

Target

Original10.5
Target0.0
Herbie0.1
\[\left(y + \frac{x}{z}\right) - \frac{y}{\frac{z}{x}}\]

Derivation

  1. Split input into 3 regimes
  2. if x < -3.808754882151643e-124

    1. Initial program 12.2

      \[\frac{x + y \cdot \left(z - x\right)}{z}\]
    2. Simplified12.2

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(z - x, y, x\right)}{z}}\]
    3. Taylor expanded around 0 5.7

      \[\leadsto \color{blue}{\left(\frac{x}{z} + y\right) - \frac{x \cdot y}{z}}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt5.8

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

      \[\leadsto \left(\frac{x}{z} + y\right) - \color{blue}{\frac{x}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \frac{y}{\sqrt[3]{z}}}\]
    7. Applied add-sqr-sqrt32.4

      \[\leadsto \color{blue}{\sqrt{\frac{x}{z} + y} \cdot \sqrt{\frac{x}{z} + y}} - \frac{x}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \frac{y}{\sqrt[3]{z}}\]
    8. Applied prod-diff32.4

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

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

      \[\leadsto \left(\left(\frac{x}{z} + y\right) - \frac{y}{\sqrt[3]{z}} \cdot \frac{x}{\sqrt[3]{z} \cdot \sqrt[3]{z}}\right) + \color{blue}{\frac{x}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \left(\left(-\frac{y}{\sqrt[3]{z}}\right) + \frac{y}{\sqrt[3]{z}}\right)}\]
    11. Using strategy rm
    12. Applied div-inv0.4

      \[\leadsto \left(\left(\frac{x}{z} + y\right) - \color{blue}{\left(y \cdot \frac{1}{\sqrt[3]{z}}\right)} \cdot \frac{x}{\sqrt[3]{z} \cdot \sqrt[3]{z}}\right) + \frac{x}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \left(\left(-\frac{y}{\sqrt[3]{z}}\right) + \frac{y}{\sqrt[3]{z}}\right)\]
    13. Applied associate-*l*0.4

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

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

    if -3.808754882151643e-124 < x < 4.595974037957284e-24

    1. Initial program 8.4

      \[\frac{x + y \cdot \left(z - x\right)}{z}\]
    2. Simplified8.4

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(z - x, y, x\right)}{z}}\]
    3. Taylor expanded around 0 0.0

      \[\leadsto \color{blue}{\left(\frac{x}{z} + y\right) - \frac{x \cdot y}{z}}\]

    if 4.595974037957284e-24 < x

    1. Initial program 12.3

      \[\frac{x + y \cdot \left(z - x\right)}{z}\]
    2. Simplified12.3

      \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(z - x, y, x\right)}{z}}\]
    3. Taylor expanded around 0 7.9

      \[\leadsto \color{blue}{\left(\frac{x}{z} + y\right) - \frac{x \cdot y}{z}}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity7.9

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

      \[\leadsto \left(\frac{x}{z} + y\right) - \color{blue}{\frac{x}{1} \cdot \frac{y}{z}}\]
    7. Simplified0.2

      \[\leadsto \left(\frac{x}{z} + y\right) - \color{blue}{x} \cdot \frac{y}{z}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification0.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -3.8087548821516432 \cdot 10^{-124}:\\ \;\;\;\;\left(\left(\frac{x}{z} + y\right) - y \cdot \frac{x}{z}\right) + \frac{x}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \left(\left(-\frac{y}{\sqrt[3]{z}}\right) + \frac{y}{\sqrt[3]{z}}\right)\\ \mathbf{elif}\;x \le 4.59597403795728422 \cdot 10^{-24}:\\ \;\;\;\;\left(\frac{x}{z} + y\right) - \frac{x \cdot y}{z}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{x}{z} + y\right) - x \cdot \frac{y}{z}\\ \end{array}\]

Reproduce

herbie shell --seed 2020042 +o rules:numerics
(FPCore (x y z)
  :name "Diagrams.Backend.Rasterific:rasterificRadialGradient from diagrams-rasterific-1.3.1.3"
  :precision binary64

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

  (/ (+ x (* y (- z x))) z))