Average Error: 10.5 → 0.1
Time: 15.2s
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 r849951 = x;
        double r849952 = y;
        double r849953 = z;
        double r849954 = r849953 - r849951;
        double r849955 = r849952 * r849954;
        double r849956 = r849951 + r849955;
        double r849957 = r849956 / r849953;
        return r849957;
}

double f(double x, double y, double z) {
        double r849958 = x;
        double r849959 = -3.808754882151643e-124;
        bool r849960 = r849958 <= r849959;
        double r849961 = z;
        double r849962 = r849958 / r849961;
        double r849963 = y;
        double r849964 = r849962 + r849963;
        double r849965 = r849963 * r849962;
        double r849966 = r849964 - r849965;
        double r849967 = cbrt(r849961);
        double r849968 = r849967 * r849967;
        double r849969 = r849958 / r849968;
        double r849970 = r849963 / r849967;
        double r849971 = -r849970;
        double r849972 = r849971 + r849970;
        double r849973 = r849969 * r849972;
        double r849974 = r849966 + r849973;
        double r849975 = 4.595974037957284e-24;
        bool r849976 = r849958 <= r849975;
        double r849977 = r849958 * r849963;
        double r849978 = r849977 / r849961;
        double r849979 = r849964 - r849978;
        double r849980 = r849963 / r849961;
        double r849981 = r849958 * r849980;
        double r849982 = r849964 - r849981;
        double r849983 = r849976 ? r849979 : r849982;
        double r849984 = r849960 ? r849974 : r849983;
        return r849984;
}

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))