Average Error: 14.8 → 0.4
Time: 14.9s
Precision: 64
\[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}\]
\[\begin{array}{l} \mathbf{if}\;x \cdot y = -\infty:\\ \;\;\;\;\frac{\frac{x}{z}}{z + 1} \cdot \frac{y}{z}\\ \mathbf{elif}\;x \cdot y \le -1.814014124122721601274999944866048262097 \cdot 10^{-209}:\\ \;\;\;\;\frac{\frac{\frac{x \cdot y}{z}}{z + 1}}{z}\\ \mathbf{elif}\;x \cdot y \le 1.750595912654215494473187029654764471159 \cdot 10^{-301}:\\ \;\;\;\;\frac{1}{\frac{z \cdot \left(z + 1\right)}{x} \cdot \frac{z}{y}}\\ \mathbf{elif}\;x \cdot y \le 1.553506472362988828548190535276053063294 \cdot 10^{240}:\\ \;\;\;\;\frac{\frac{\frac{x \cdot y}{z}}{z + 1}}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{x}{z}}{z + 1} \cdot \frac{y}{z}\\ \end{array}\]
\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1\right)}
\begin{array}{l}
\mathbf{if}\;x \cdot y = -\infty:\\
\;\;\;\;\frac{\frac{x}{z}}{z + 1} \cdot \frac{y}{z}\\

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

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

\mathbf{elif}\;x \cdot y \le 1.553506472362988828548190535276053063294 \cdot 10^{240}:\\
\;\;\;\;\frac{\frac{\frac{x \cdot y}{z}}{z + 1}}{z}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{x}{z}}{z + 1} \cdot \frac{y}{z}\\

\end{array}
double f(double x, double y, double z) {
        double r237500 = x;
        double r237501 = y;
        double r237502 = r237500 * r237501;
        double r237503 = z;
        double r237504 = r237503 * r237503;
        double r237505 = 1.0;
        double r237506 = r237503 + r237505;
        double r237507 = r237504 * r237506;
        double r237508 = r237502 / r237507;
        return r237508;
}

double f(double x, double y, double z) {
        double r237509 = x;
        double r237510 = y;
        double r237511 = r237509 * r237510;
        double r237512 = -inf.0;
        bool r237513 = r237511 <= r237512;
        double r237514 = z;
        double r237515 = r237509 / r237514;
        double r237516 = 1.0;
        double r237517 = r237514 + r237516;
        double r237518 = r237515 / r237517;
        double r237519 = r237510 / r237514;
        double r237520 = r237518 * r237519;
        double r237521 = -1.8140141241227216e-209;
        bool r237522 = r237511 <= r237521;
        double r237523 = r237511 / r237514;
        double r237524 = r237523 / r237517;
        double r237525 = r237524 / r237514;
        double r237526 = 1.7505959126542155e-301;
        bool r237527 = r237511 <= r237526;
        double r237528 = 1.0;
        double r237529 = r237514 * r237517;
        double r237530 = r237529 / r237509;
        double r237531 = r237514 / r237510;
        double r237532 = r237530 * r237531;
        double r237533 = r237528 / r237532;
        double r237534 = 1.5535064723629888e+240;
        bool r237535 = r237511 <= r237534;
        double r237536 = r237535 ? r237525 : r237520;
        double r237537 = r237527 ? r237533 : r237536;
        double r237538 = r237522 ? r237525 : r237537;
        double r237539 = r237513 ? r237520 : r237538;
        return r237539;
}

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.8
Target3.8
Herbie0.4
\[\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 y) < -inf.0 or 1.5535064723629888e+240 < (* x y)

    1. Initial program 53.8

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

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

    if -inf.0 < (* x y) < -1.8140141241227216e-209 or 1.7505959126542155e-301 < (* x y) < 1.5535064723629888e+240

    1. Initial program 6.9

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

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

      \[\leadsto \frac{y}{\color{blue}{1 \cdot z}} \cdot \frac{\frac{x}{z}}{z + 1}\]
    5. Applied *-un-lft-identity4.3

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

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

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

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

      \[\leadsto \frac{1}{1} \cdot \frac{y \cdot \frac{x}{z \cdot \left(z + 1\right)}}{\color{blue}{1 \cdot z}}\]
    11. Applied associate-/r*3.3

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

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

      \[\leadsto \frac{1}{1} \cdot \frac{\frac{\color{blue}{\frac{y \cdot x}{z}}}{1 + z}}{z}\]
    15. Simplified0.2

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

    if -1.8140141241227216e-209 < (* x y) < 1.7505959126542155e-301

    1. Initial program 21.7

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

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

      \[\leadsto \frac{y}{\color{blue}{1 \cdot z}} \cdot \frac{\frac{x}{z}}{z + 1}\]
    5. Applied *-un-lft-identity0.4

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

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

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

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

      \[\leadsto \frac{1}{1} \cdot \frac{y \cdot \frac{x}{z \cdot \left(z + 1\right)}}{\color{blue}{1 \cdot z}}\]
    11. Applied associate-/r*3.1

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

      \[\leadsto \frac{1}{1} \cdot \frac{\color{blue}{\frac{y \cdot \frac{x}{z}}{1 + z}}}{z}\]
    13. Using strategy rm
    14. Applied clear-num3.2

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \cdot y = -\infty:\\ \;\;\;\;\frac{\frac{x}{z}}{z + 1} \cdot \frac{y}{z}\\ \mathbf{elif}\;x \cdot y \le -1.814014124122721601274999944866048262097 \cdot 10^{-209}:\\ \;\;\;\;\frac{\frac{\frac{x \cdot y}{z}}{z + 1}}{z}\\ \mathbf{elif}\;x \cdot y \le 1.750595912654215494473187029654764471159 \cdot 10^{-301}:\\ \;\;\;\;\frac{1}{\frac{z \cdot \left(z + 1\right)}{x} \cdot \frac{z}{y}}\\ \mathbf{elif}\;x \cdot y \le 1.553506472362988828548190535276053063294 \cdot 10^{240}:\\ \;\;\;\;\frac{\frac{\frac{x \cdot y}{z}}{z + 1}}{z}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{x}{z}}{z + 1} \cdot \frac{y}{z}\\ \end{array}\]

Reproduce

herbie shell --seed 2019194 
(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))))