Average Error: 28.9 → 2.6
Time: 5.0s
Precision: 64
\[\frac{\left(x \cdot x + y \cdot y\right) - z \cdot z}{y \cdot 2}\]
\[\begin{array}{l} \mathbf{if}\;z \le -1.3464060117545458 \cdot 10^{154}:\\ \;\;\;\;0.5 \cdot \left(1 \cdot \left(\left(\mathsf{fma}\left(x, \frac{x}{y}, y\right) - \frac{z}{\sqrt{y}} \cdot \frac{z}{\sqrt{y}}\right) + \frac{z}{\sqrt{y}} \cdot \left(\frac{-z}{\sqrt{y}} + \frac{z}{\sqrt{y}}\right)\right)\right)\\ \mathbf{elif}\;z \le 1.32314543849587134 \cdot 10^{154}:\\ \;\;\;\;0.5 \cdot \left(1 \cdot \left(\mathsf{fma}\left(x, \frac{x}{y}, y\right) - \frac{{z}^{2}}{y}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \left(\left(y + \frac{{x}^{2}}{y}\right) - z \cdot \frac{z}{y}\right)\\ \end{array}\]
\frac{\left(x \cdot x + y \cdot y\right) - z \cdot z}{y \cdot 2}
\begin{array}{l}
\mathbf{if}\;z \le -1.3464060117545458 \cdot 10^{154}:\\
\;\;\;\;0.5 \cdot \left(1 \cdot \left(\left(\mathsf{fma}\left(x, \frac{x}{y}, y\right) - \frac{z}{\sqrt{y}} \cdot \frac{z}{\sqrt{y}}\right) + \frac{z}{\sqrt{y}} \cdot \left(\frac{-z}{\sqrt{y}} + \frac{z}{\sqrt{y}}\right)\right)\right)\\

\mathbf{elif}\;z \le 1.32314543849587134 \cdot 10^{154}:\\
\;\;\;\;0.5 \cdot \left(1 \cdot \left(\mathsf{fma}\left(x, \frac{x}{y}, y\right) - \frac{{z}^{2}}{y}\right)\right)\\

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

\end{array}
double f(double x, double y, double z) {
        double r613210 = x;
        double r613211 = r613210 * r613210;
        double r613212 = y;
        double r613213 = r613212 * r613212;
        double r613214 = r613211 + r613213;
        double r613215 = z;
        double r613216 = r613215 * r613215;
        double r613217 = r613214 - r613216;
        double r613218 = 2.0;
        double r613219 = r613212 * r613218;
        double r613220 = r613217 / r613219;
        return r613220;
}

double f(double x, double y, double z) {
        double r613221 = z;
        double r613222 = -1.3464060117545458e+154;
        bool r613223 = r613221 <= r613222;
        double r613224 = 0.5;
        double r613225 = 1.0;
        double r613226 = x;
        double r613227 = y;
        double r613228 = r613226 / r613227;
        double r613229 = fma(r613226, r613228, r613227);
        double r613230 = sqrt(r613227);
        double r613231 = r613221 / r613230;
        double r613232 = r613231 * r613231;
        double r613233 = r613229 - r613232;
        double r613234 = -r613221;
        double r613235 = r613234 / r613230;
        double r613236 = r613235 + r613231;
        double r613237 = r613231 * r613236;
        double r613238 = r613233 + r613237;
        double r613239 = r613225 * r613238;
        double r613240 = r613224 * r613239;
        double r613241 = 1.3231454384958713e+154;
        bool r613242 = r613221 <= r613241;
        double r613243 = 2.0;
        double r613244 = pow(r613221, r613243);
        double r613245 = r613244 / r613227;
        double r613246 = r613229 - r613245;
        double r613247 = r613225 * r613246;
        double r613248 = r613224 * r613247;
        double r613249 = pow(r613226, r613243);
        double r613250 = r613249 / r613227;
        double r613251 = r613227 + r613250;
        double r613252 = r613221 / r613227;
        double r613253 = r613221 * r613252;
        double r613254 = r613251 - r613253;
        double r613255 = r613224 * r613254;
        double r613256 = r613242 ? r613248 : r613255;
        double r613257 = r613223 ? r613240 : r613256;
        return r613257;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Target

Original28.9
Target0.2
Herbie2.6
\[y \cdot 0.5 - \left(\frac{0.5}{y} \cdot \left(z + x\right)\right) \cdot \left(z - x\right)\]

Derivation

  1. Split input into 3 regimes
  2. if z < -1.3464060117545458e+154

    1. Initial program 64.0

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

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

      \[\leadsto \color{blue}{\left(0.5 \cdot y + 0.5 \cdot \frac{{x}^{2}}{y}\right) - 0.5 \cdot \frac{{z}^{2}}{y}}\]
    4. Simplified64.0

      \[\leadsto \color{blue}{0.5 \cdot \left(\left(y + \frac{{x}^{2}}{y}\right) - \frac{{z}^{2}}{y}\right)}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity64.0

      \[\leadsto 0.5 \cdot \left(\left(y + \frac{{x}^{2}}{\color{blue}{1 \cdot y}}\right) - \frac{{z}^{2}}{y}\right)\]
    7. Applied add-sqr-sqrt64.0

      \[\leadsto 0.5 \cdot \left(\left(y + \frac{{\color{blue}{\left(\sqrt{x} \cdot \sqrt{x}\right)}}^{2}}{1 \cdot y}\right) - \frac{{z}^{2}}{y}\right)\]
    8. Applied unpow-prod-down64.0

      \[\leadsto 0.5 \cdot \left(\left(y + \frac{\color{blue}{{\left(\sqrt{x}\right)}^{2} \cdot {\left(\sqrt{x}\right)}^{2}}}{1 \cdot y}\right) - \frac{{z}^{2}}{y}\right)\]
    9. Applied times-frac64.0

      \[\leadsto 0.5 \cdot \left(\left(y + \color{blue}{\frac{{\left(\sqrt{x}\right)}^{2}}{1} \cdot \frac{{\left(\sqrt{x}\right)}^{2}}{y}}\right) - \frac{{z}^{2}}{y}\right)\]
    10. Simplified64.0

      \[\leadsto 0.5 \cdot \left(\left(y + \color{blue}{x} \cdot \frac{{\left(\sqrt{x}\right)}^{2}}{y}\right) - \frac{{z}^{2}}{y}\right)\]
    11. Simplified64.0

      \[\leadsto 0.5 \cdot \left(\left(y + x \cdot \color{blue}{\frac{x}{y}}\right) - \frac{{z}^{2}}{y}\right)\]
    12. Using strategy rm
    13. Applied *-un-lft-identity64.0

      \[\leadsto 0.5 \cdot \left(\left(y + x \cdot \frac{x}{y}\right) - \color{blue}{1 \cdot \frac{{z}^{2}}{y}}\right)\]
    14. Applied *-un-lft-identity64.0

      \[\leadsto 0.5 \cdot \left(\color{blue}{1 \cdot \left(y + x \cdot \frac{x}{y}\right)} - 1 \cdot \frac{{z}^{2}}{y}\right)\]
    15. Applied distribute-lft-out--64.0

      \[\leadsto 0.5 \cdot \color{blue}{\left(1 \cdot \left(\left(y + x \cdot \frac{x}{y}\right) - \frac{{z}^{2}}{y}\right)\right)}\]
    16. Simplified64.0

      \[\leadsto 0.5 \cdot \left(1 \cdot \color{blue}{\left(\mathsf{fma}\left(x, \frac{x}{y}, y\right) - \frac{{z}^{2}}{y}\right)}\right)\]
    17. Using strategy rm
    18. Applied add-sqr-sqrt64.0

      \[\leadsto 0.5 \cdot \left(1 \cdot \left(\mathsf{fma}\left(x, \frac{x}{y}, y\right) - \frac{{z}^{2}}{\color{blue}{\sqrt{y} \cdot \sqrt{y}}}\right)\right)\]
    19. Applied add-sqr-sqrt64.0

      \[\leadsto 0.5 \cdot \left(1 \cdot \left(\mathsf{fma}\left(x, \frac{x}{y}, y\right) - \frac{{\color{blue}{\left(\sqrt{z} \cdot \sqrt{z}\right)}}^{2}}{\sqrt{y} \cdot \sqrt{y}}\right)\right)\]
    20. Applied unpow-prod-down64.0

      \[\leadsto 0.5 \cdot \left(1 \cdot \left(\mathsf{fma}\left(x, \frac{x}{y}, y\right) - \frac{\color{blue}{{\left(\sqrt{z}\right)}^{2} \cdot {\left(\sqrt{z}\right)}^{2}}}{\sqrt{y} \cdot \sqrt{y}}\right)\right)\]
    21. Applied times-frac64.0

      \[\leadsto 0.5 \cdot \left(1 \cdot \left(\mathsf{fma}\left(x, \frac{x}{y}, y\right) - \color{blue}{\frac{{\left(\sqrt{z}\right)}^{2}}{\sqrt{y}} \cdot \frac{{\left(\sqrt{z}\right)}^{2}}{\sqrt{y}}}\right)\right)\]
    22. Applied add-sqr-sqrt64.0

      \[\leadsto 0.5 \cdot \left(1 \cdot \left(\color{blue}{\sqrt{\mathsf{fma}\left(x, \frac{x}{y}, y\right)} \cdot \sqrt{\mathsf{fma}\left(x, \frac{x}{y}, y\right)}} - \frac{{\left(\sqrt{z}\right)}^{2}}{\sqrt{y}} \cdot \frac{{\left(\sqrt{z}\right)}^{2}}{\sqrt{y}}\right)\right)\]
    23. Applied prod-diff64.0

      \[\leadsto 0.5 \cdot \left(1 \cdot \color{blue}{\left(\mathsf{fma}\left(\sqrt{\mathsf{fma}\left(x, \frac{x}{y}, y\right)}, \sqrt{\mathsf{fma}\left(x, \frac{x}{y}, y\right)}, -\frac{{\left(\sqrt{z}\right)}^{2}}{\sqrt{y}} \cdot \frac{{\left(\sqrt{z}\right)}^{2}}{\sqrt{y}}\right) + \mathsf{fma}\left(-\frac{{\left(\sqrt{z}\right)}^{2}}{\sqrt{y}}, \frac{{\left(\sqrt{z}\right)}^{2}}{\sqrt{y}}, \frac{{\left(\sqrt{z}\right)}^{2}}{\sqrt{y}} \cdot \frac{{\left(\sqrt{z}\right)}^{2}}{\sqrt{y}}\right)\right)}\right)\]
    24. Simplified64.0

      \[\leadsto 0.5 \cdot \left(1 \cdot \left(\color{blue}{\left(\mathsf{fma}\left(x, \frac{x}{y}, y\right) - \frac{z}{\sqrt{y}} \cdot \frac{z}{\sqrt{y}}\right)} + \mathsf{fma}\left(-\frac{{\left(\sqrt{z}\right)}^{2}}{\sqrt{y}}, \frac{{\left(\sqrt{z}\right)}^{2}}{\sqrt{y}}, \frac{{\left(\sqrt{z}\right)}^{2}}{\sqrt{y}} \cdot \frac{{\left(\sqrt{z}\right)}^{2}}{\sqrt{y}}\right)\right)\right)\]
    25. Simplified30.4

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

    if -1.3464060117545458e+154 < z < 1.3231454384958713e+154

    1. Initial program 25.1

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

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

      \[\leadsto \color{blue}{\left(0.5 \cdot y + 0.5 \cdot \frac{{x}^{2}}{y}\right) - 0.5 \cdot \frac{{z}^{2}}{y}}\]
    4. Simplified7.1

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

      \[\leadsto 0.5 \cdot \left(\left(y + \frac{{x}^{2}}{\color{blue}{1 \cdot y}}\right) - \frac{{z}^{2}}{y}\right)\]
    7. Applied add-sqr-sqrt36.3

      \[\leadsto 0.5 \cdot \left(\left(y + \frac{{\color{blue}{\left(\sqrt{x} \cdot \sqrt{x}\right)}}^{2}}{1 \cdot y}\right) - \frac{{z}^{2}}{y}\right)\]
    8. Applied unpow-prod-down36.3

      \[\leadsto 0.5 \cdot \left(\left(y + \frac{\color{blue}{{\left(\sqrt{x}\right)}^{2} \cdot {\left(\sqrt{x}\right)}^{2}}}{1 \cdot y}\right) - \frac{{z}^{2}}{y}\right)\]
    9. Applied times-frac33.0

      \[\leadsto 0.5 \cdot \left(\left(y + \color{blue}{\frac{{\left(\sqrt{x}\right)}^{2}}{1} \cdot \frac{{\left(\sqrt{x}\right)}^{2}}{y}}\right) - \frac{{z}^{2}}{y}\right)\]
    10. Simplified32.9

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

      \[\leadsto 0.5 \cdot \left(\left(y + x \cdot \color{blue}{\frac{x}{y}}\right) - \frac{{z}^{2}}{y}\right)\]
    12. Using strategy rm
    13. Applied *-un-lft-identity0.7

      \[\leadsto 0.5 \cdot \left(\left(y + x \cdot \frac{x}{y}\right) - \color{blue}{1 \cdot \frac{{z}^{2}}{y}}\right)\]
    14. Applied *-un-lft-identity0.7

      \[\leadsto 0.5 \cdot \left(\color{blue}{1 \cdot \left(y + x \cdot \frac{x}{y}\right)} - 1 \cdot \frac{{z}^{2}}{y}\right)\]
    15. Applied distribute-lft-out--0.7

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

      \[\leadsto 0.5 \cdot \left(1 \cdot \color{blue}{\left(\mathsf{fma}\left(x, \frac{x}{y}, y\right) - \frac{{z}^{2}}{y}\right)}\right)\]

    if 1.3231454384958713e+154 < z

    1. Initial program 64.0

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

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

      \[\leadsto \color{blue}{\left(0.5 \cdot y + 0.5 \cdot \frac{{x}^{2}}{y}\right) - 0.5 \cdot \frac{{z}^{2}}{y}}\]
    4. Simplified64.0

      \[\leadsto \color{blue}{0.5 \cdot \left(\left(y + \frac{{x}^{2}}{y}\right) - \frac{{z}^{2}}{y}\right)}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity64.0

      \[\leadsto 0.5 \cdot \left(\left(y + \frac{{x}^{2}}{y}\right) - \frac{{z}^{2}}{\color{blue}{1 \cdot y}}\right)\]
    7. Applied add-sqr-sqrt64.0

      \[\leadsto 0.5 \cdot \left(\left(y + \frac{{x}^{2}}{y}\right) - \frac{{\color{blue}{\left(\sqrt{z} \cdot \sqrt{z}\right)}}^{2}}{1 \cdot y}\right)\]
    8. Applied unpow-prod-down64.0

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

      \[\leadsto 0.5 \cdot \left(\left(y + \frac{{x}^{2}}{y}\right) - \color{blue}{\frac{{\left(\sqrt{z}\right)}^{2}}{1} \cdot \frac{{\left(\sqrt{z}\right)}^{2}}{y}}\right)\]
    10. Simplified12.0

      \[\leadsto 0.5 \cdot \left(\left(y + \frac{{x}^{2}}{y}\right) - \color{blue}{z} \cdot \frac{{\left(\sqrt{z}\right)}^{2}}{y}\right)\]
    11. Simplified11.8

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -1.3464060117545458 \cdot 10^{154}:\\ \;\;\;\;0.5 \cdot \left(1 \cdot \left(\left(\mathsf{fma}\left(x, \frac{x}{y}, y\right) - \frac{z}{\sqrt{y}} \cdot \frac{z}{\sqrt{y}}\right) + \frac{z}{\sqrt{y}} \cdot \left(\frac{-z}{\sqrt{y}} + \frac{z}{\sqrt{y}}\right)\right)\right)\\ \mathbf{elif}\;z \le 1.32314543849587134 \cdot 10^{154}:\\ \;\;\;\;0.5 \cdot \left(1 \cdot \left(\mathsf{fma}\left(x, \frac{x}{y}, y\right) - \frac{{z}^{2}}{y}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;0.5 \cdot \left(\left(y + \frac{{x}^{2}}{y}\right) - z \cdot \frac{z}{y}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2020083 +o rules:numerics
(FPCore (x y z)
  :name "Diagrams.TwoD.Apollonian:initialConfig from diagrams-contrib-1.3.0.5, A"
  :precision binary64

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

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