Average Error: 15.5 → 2.8
Time: 15.9s
Precision: 64
\[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\]
\[\begin{array}{l} \mathbf{if}\;y \le -7.665174777463242308531259519255040294958 \cdot 10^{-170}:\\ \;\;\;\;\frac{\frac{x}{z} \cdot \frac{y}{z}}{1 + z}\\ \mathbf{elif}\;y \le 2.402727200575820227351893685764344920999 \cdot 10^{-272}:\\ \;\;\;\;\frac{\frac{x}{\frac{z}{y} \cdot z}}{1 + z}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{1 + z} \cdot \left(\frac{x}{z} \cdot \frac{y}{z}\right)\\ \end{array}\]
\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}
\begin{array}{l}
\mathbf{if}\;y \le -7.665174777463242308531259519255040294958 \cdot 10^{-170}:\\
\;\;\;\;\frac{\frac{x}{z} \cdot \frac{y}{z}}{1 + z}\\

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

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

\end{array}
double f(double x, double y, double z) {
        double r214845 = x;
        double r214846 = y;
        double r214847 = r214845 * r214846;
        double r214848 = z;
        double r214849 = r214848 * r214848;
        double r214850 = 1.0;
        double r214851 = r214848 + r214850;
        double r214852 = r214849 * r214851;
        double r214853 = r214847 / r214852;
        return r214853;
}

double f(double x, double y, double z) {
        double r214854 = y;
        double r214855 = -7.665174777463242e-170;
        bool r214856 = r214854 <= r214855;
        double r214857 = x;
        double r214858 = z;
        double r214859 = r214857 / r214858;
        double r214860 = r214854 / r214858;
        double r214861 = r214859 * r214860;
        double r214862 = 1.0;
        double r214863 = r214862 + r214858;
        double r214864 = r214861 / r214863;
        double r214865 = 2.4027272005758202e-272;
        bool r214866 = r214854 <= r214865;
        double r214867 = r214858 / r214854;
        double r214868 = r214867 * r214858;
        double r214869 = r214857 / r214868;
        double r214870 = r214869 / r214863;
        double r214871 = 1.0;
        double r214872 = r214871 / r214863;
        double r214873 = r214872 * r214861;
        double r214874 = r214866 ? r214870 : r214873;
        double r214875 = r214856 ? r214864 : r214874;
        return r214875;
}

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

Original15.5
Target4.0
Herbie2.8
\[\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 y < -7.665174777463242e-170

    1. Initial program 15.6

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

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

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

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

    if -7.665174777463242e-170 < y < 2.4027272005758202e-272

    1. Initial program 15.0

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

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

      \[\leadsto \color{blue}{\frac{\frac{y}{z} \cdot \frac{x}{z}}{z + 1}}\]
    5. Simplified4.4

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

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

      \[\leadsto \frac{\color{blue}{1 \cdot \left(\frac{x}{z} \cdot \frac{y}{z}\right)}}{z + 1}\]
    9. Simplified4.0

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

    if 2.4027272005758202e-272 < y

    1. Initial program 15.5

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

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

      \[\leadsto \color{blue}{\frac{\frac{y}{z} \cdot \frac{x}{z}}{z + 1}}\]
    5. Simplified2.6

      \[\leadsto \frac{\color{blue}{\frac{x}{z} \cdot \frac{y}{z}}}{z + 1}\]
    6. Using strategy rm
    7. Applied div-inv2.6

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \le -7.665174777463242308531259519255040294958 \cdot 10^{-170}:\\ \;\;\;\;\frac{\frac{x}{z} \cdot \frac{y}{z}}{1 + z}\\ \mathbf{elif}\;y \le 2.402727200575820227351893685764344920999 \cdot 10^{-272}:\\ \;\;\;\;\frac{\frac{x}{\frac{z}{y} \cdot z}}{1 + z}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{1 + z} \cdot \left(\frac{x}{z} \cdot \frac{y}{z}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019195 
(FPCore (x y z)
  :name "Statistics.Distribution.Beta:$cvariance from math-functions-0.1.5.2"

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

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