Average Error: 14.4 → 2.7
Time: 18.6s
Precision: 64
\[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\]
\[\begin{array}{l} \mathbf{if}\;x \le -4.866719630833749754680862212046528178418 \cdot 10^{-200}:\\ \;\;\;\;\frac{1}{z} \cdot \left(\frac{x}{z} \cdot \left(\frac{\frac{1}{\sqrt[3]{z + 1}}}{\sqrt[3]{z + 1}} \cdot \frac{y}{\sqrt[3]{z + 1}}\right)\right)\\ \mathbf{elif}\;x \le 1.613947613481181922181386382488618302971 \cdot 10^{-188}:\\ \;\;\;\;\frac{\frac{x}{z}}{z} \cdot \frac{y}{z + 1}\\ \mathbf{elif}\;x \le 8.146317473810848493984639309229108513334 \cdot 10^{202}:\\ \;\;\;\;\frac{1}{z} \cdot \left(\frac{x}{z} \cdot \left(\frac{\frac{1}{\sqrt[3]{z + 1}}}{\sqrt[3]{z + 1}} \cdot \frac{y}{\sqrt[3]{z + 1}}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{z} \cdot \left(\frac{1}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \left(\frac{\frac{y}{\sqrt[3]{z + 1} \cdot \sqrt[3]{z + 1}}}{\sqrt[3]{z + 1}} \cdot \frac{x}{\sqrt[3]{z}}\right)\right)\\ \end{array}\]
\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}
\begin{array}{l}
\mathbf{if}\;x \le -4.866719630833749754680862212046528178418 \cdot 10^{-200}:\\
\;\;\;\;\frac{1}{z} \cdot \left(\frac{x}{z} \cdot \left(\frac{\frac{1}{\sqrt[3]{z + 1}}}{\sqrt[3]{z + 1}} \cdot \frac{y}{\sqrt[3]{z + 1}}\right)\right)\\

\mathbf{elif}\;x \le 1.613947613481181922181386382488618302971 \cdot 10^{-188}:\\
\;\;\;\;\frac{\frac{x}{z}}{z} \cdot \frac{y}{z + 1}\\

\mathbf{elif}\;x \le 8.146317473810848493984639309229108513334 \cdot 10^{202}:\\
\;\;\;\;\frac{1}{z} \cdot \left(\frac{x}{z} \cdot \left(\frac{\frac{1}{\sqrt[3]{z + 1}}}{\sqrt[3]{z + 1}} \cdot \frac{y}{\sqrt[3]{z + 1}}\right)\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{z} \cdot \left(\frac{1}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \left(\frac{\frac{y}{\sqrt[3]{z + 1} \cdot \sqrt[3]{z + 1}}}{\sqrt[3]{z + 1}} \cdot \frac{x}{\sqrt[3]{z}}\right)\right)\\

\end{array}
double f(double x, double y, double z) {
        double r199039 = x;
        double r199040 = y;
        double r199041 = r199039 * r199040;
        double r199042 = z;
        double r199043 = r199042 * r199042;
        double r199044 = 1.0;
        double r199045 = r199042 + r199044;
        double r199046 = r199043 * r199045;
        double r199047 = r199041 / r199046;
        return r199047;
}

double f(double x, double y, double z) {
        double r199048 = x;
        double r199049 = -4.86671963083375e-200;
        bool r199050 = r199048 <= r199049;
        double r199051 = 1.0;
        double r199052 = z;
        double r199053 = r199051 / r199052;
        double r199054 = r199048 / r199052;
        double r199055 = 1.0;
        double r199056 = r199052 + r199055;
        double r199057 = cbrt(r199056);
        double r199058 = r199051 / r199057;
        double r199059 = r199058 / r199057;
        double r199060 = y;
        double r199061 = r199060 / r199057;
        double r199062 = r199059 * r199061;
        double r199063 = r199054 * r199062;
        double r199064 = r199053 * r199063;
        double r199065 = 1.613947613481182e-188;
        bool r199066 = r199048 <= r199065;
        double r199067 = r199054 / r199052;
        double r199068 = r199060 / r199056;
        double r199069 = r199067 * r199068;
        double r199070 = 8.146317473810848e+202;
        bool r199071 = r199048 <= r199070;
        double r199072 = cbrt(r199052);
        double r199073 = r199072 * r199072;
        double r199074 = r199051 / r199073;
        double r199075 = r199057 * r199057;
        double r199076 = r199060 / r199075;
        double r199077 = r199076 / r199057;
        double r199078 = r199048 / r199072;
        double r199079 = r199077 * r199078;
        double r199080 = r199074 * r199079;
        double r199081 = r199053 * r199080;
        double r199082 = r199071 ? r199064 : r199081;
        double r199083 = r199066 ? r199069 : r199082;
        double r199084 = r199050 ? r199064 : r199083;
        return r199084;
}

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

Original14.4
Target4.2
Herbie2.7
\[\begin{array}{l} \mathbf{if}\;z \lt 249.6182814532307077115547144785523414612:\\ \;\;\;\;\frac{y \cdot \frac{x}{z}}{z + z \cdot z}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{y}{z}}{1 + z} \cdot x}{z}\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if x < -4.86671963083375e-200 or 1.613947613481182e-188 < x < 8.146317473810848e+202

    1. Initial program 13.4

      \[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\]
    2. Using strategy rm
    3. Applied times-frac9.7

      \[\leadsto \color{blue}{\frac{x}{z \cdot z} \cdot \frac{y}{z + 1}}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity9.7

      \[\leadsto \frac{\color{blue}{1 \cdot x}}{z \cdot z} \cdot \frac{y}{z + 1}\]
    6. Applied times-frac6.0

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

      \[\leadsto \color{blue}{\frac{1}{z} \cdot \left(\frac{x}{z} \cdot \frac{y}{z + 1}\right)}\]
    8. Using strategy rm
    9. Applied add-cube-cbrt2.0

      \[\leadsto \frac{1}{z} \cdot \left(\frac{x}{z} \cdot \frac{y}{\color{blue}{\left(\sqrt[3]{z + 1} \cdot \sqrt[3]{z + 1}\right) \cdot \sqrt[3]{z + 1}}}\right)\]
    10. Applied *-un-lft-identity2.0

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

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

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

    if -4.86671963083375e-200 < x < 1.613947613481182e-188

    1. Initial program 14.5

      \[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\]
    2. Using strategy rm
    3. Applied times-frac12.7

      \[\leadsto \color{blue}{\frac{x}{z \cdot z} \cdot \frac{y}{z + 1}}\]
    4. Using strategy rm
    5. Applied associate-/r*3.5

      \[\leadsto \color{blue}{\frac{\frac{x}{z}}{z}} \cdot \frac{y}{z + 1}\]

    if 8.146317473810848e+202 < x

    1. Initial program 24.7

      \[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\]
    2. Using strategy rm
    3. Applied times-frac16.7

      \[\leadsto \color{blue}{\frac{x}{z \cdot z} \cdot \frac{y}{z + 1}}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity16.7

      \[\leadsto \frac{\color{blue}{1 \cdot x}}{z \cdot z} \cdot \frac{y}{z + 1}\]
    6. Applied times-frac8.7

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

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

      \[\leadsto \frac{1}{z} \cdot \left(\frac{x}{z} \cdot \frac{y}{\color{blue}{\left(\sqrt[3]{z + 1} \cdot \sqrt[3]{z + 1}\right) \cdot \sqrt[3]{z + 1}}}\right)\]
    10. Applied *-un-lft-identity9.1

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

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

      \[\leadsto \frac{1}{z} \cdot \left(\frac{x}{z} \cdot \left(\color{blue}{\frac{\frac{1}{\sqrt[3]{z + 1}}}{\sqrt[3]{z + 1}}} \cdot \frac{y}{\sqrt[3]{z + 1}}\right)\right)\]
    13. Using strategy rm
    14. Applied add-cube-cbrt9.4

      \[\leadsto \frac{1}{z} \cdot \left(\frac{x}{\color{blue}{\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}}} \cdot \left(\frac{\frac{1}{\sqrt[3]{z + 1}}}{\sqrt[3]{z + 1}} \cdot \frac{y}{\sqrt[3]{z + 1}}\right)\right)\]
    15. Applied *-un-lft-identity9.4

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -4.866719630833749754680862212046528178418 \cdot 10^{-200}:\\ \;\;\;\;\frac{1}{z} \cdot \left(\frac{x}{z} \cdot \left(\frac{\frac{1}{\sqrt[3]{z + 1}}}{\sqrt[3]{z + 1}} \cdot \frac{y}{\sqrt[3]{z + 1}}\right)\right)\\ \mathbf{elif}\;x \le 1.613947613481181922181386382488618302971 \cdot 10^{-188}:\\ \;\;\;\;\frac{\frac{x}{z}}{z} \cdot \frac{y}{z + 1}\\ \mathbf{elif}\;x \le 8.146317473810848493984639309229108513334 \cdot 10^{202}:\\ \;\;\;\;\frac{1}{z} \cdot \left(\frac{x}{z} \cdot \left(\frac{\frac{1}{\sqrt[3]{z + 1}}}{\sqrt[3]{z + 1}} \cdot \frac{y}{\sqrt[3]{z + 1}}\right)\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{z} \cdot \left(\frac{1}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \left(\frac{\frac{y}{\sqrt[3]{z + 1} \cdot \sqrt[3]{z + 1}}}{\sqrt[3]{z + 1}} \cdot \frac{x}{\sqrt[3]{z}}\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019322 +o rules:numerics
(FPCore (x y z)
  :name "Statistics.Distribution.Beta:$cvariance from math-functions-0.1.5.2"
  :precision binary64

  :herbie-target
  (if (< z 249.6182814532307) (/ (* y (/ x z)) (+ z (* z z))) (/ (* (/ (/ y z) (+ 1 z)) x) z))

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