Average Error: 14.2 → 2.7
Time: 18.8s
Precision: 64
\[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1.0\right)}\]
\[\begin{array}{l} \mathbf{if}\;z \le 1.687008558896401 \cdot 10^{-106}:\\ \;\;\;\;\frac{\frac{\frac{x}{z}}{\frac{\sqrt[3]{z}}{\sqrt[3]{y}} \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{y}}} \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{z}}}{1.0 + z}\\ \mathbf{elif}\;z \le 1.0635760468403562 \cdot 10^{+63}:\\ \;\;\;\;\frac{\frac{\frac{x \cdot y}{z}}{z}}{1.0 + z}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\frac{1.0 + z}{\frac{y}{z} \cdot \frac{x}{z}}}\\ \end{array}\]
\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1.0\right)}
\begin{array}{l}
\mathbf{if}\;z \le 1.687008558896401 \cdot 10^{-106}:\\
\;\;\;\;\frac{\frac{\frac{x}{z}}{\frac{\sqrt[3]{z}}{\sqrt[3]{y}} \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{y}}} \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{z}}}{1.0 + z}\\

\mathbf{elif}\;z \le 1.0635760468403562 \cdot 10^{+63}:\\
\;\;\;\;\frac{\frac{\frac{x \cdot y}{z}}{z}}{1.0 + z}\\

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

\end{array}
double f(double x, double y, double z) {
        double r12244785 = x;
        double r12244786 = y;
        double r12244787 = r12244785 * r12244786;
        double r12244788 = z;
        double r12244789 = r12244788 * r12244788;
        double r12244790 = 1.0;
        double r12244791 = r12244788 + r12244790;
        double r12244792 = r12244789 * r12244791;
        double r12244793 = r12244787 / r12244792;
        return r12244793;
}

double f(double x, double y, double z) {
        double r12244794 = z;
        double r12244795 = 1.687008558896401e-106;
        bool r12244796 = r12244794 <= r12244795;
        double r12244797 = x;
        double r12244798 = r12244797 / r12244794;
        double r12244799 = cbrt(r12244794);
        double r12244800 = y;
        double r12244801 = cbrt(r12244800);
        double r12244802 = r12244799 / r12244801;
        double r12244803 = r12244802 * r12244802;
        double r12244804 = r12244798 / r12244803;
        double r12244805 = r12244801 / r12244799;
        double r12244806 = r12244804 * r12244805;
        double r12244807 = 1.0;
        double r12244808 = r12244807 + r12244794;
        double r12244809 = r12244806 / r12244808;
        double r12244810 = 1.0635760468403562e+63;
        bool r12244811 = r12244794 <= r12244810;
        double r12244812 = r12244797 * r12244800;
        double r12244813 = r12244812 / r12244794;
        double r12244814 = r12244813 / r12244794;
        double r12244815 = r12244814 / r12244808;
        double r12244816 = 1.0;
        double r12244817 = r12244800 / r12244794;
        double r12244818 = r12244817 * r12244798;
        double r12244819 = r12244808 / r12244818;
        double r12244820 = r12244816 / r12244819;
        double r12244821 = r12244811 ? r12244815 : r12244820;
        double r12244822 = r12244796 ? r12244809 : r12244821;
        return r12244822;
}

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.2
Target3.9
Herbie2.7
\[\begin{array}{l} \mathbf{if}\;z \lt 249.6182814532307:\\ \;\;\;\;\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 z < 1.687008558896401e-106

    1. Initial program 17.5

      \[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1.0\right)}\]
    2. Using strategy rm
    3. Applied associate-/r*15.9

      \[\leadsto \color{blue}{\frac{\frac{x \cdot y}{z \cdot z}}{z + 1.0}}\]
    4. Using strategy rm
    5. Applied times-frac3.1

      \[\leadsto \frac{\color{blue}{\frac{x}{z} \cdot \frac{y}{z}}}{z + 1.0}\]
    6. Using strategy rm
    7. Applied add-cube-cbrt3.7

      \[\leadsto \frac{\frac{x}{z} \cdot \frac{y}{\color{blue}{\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}}}}{z + 1.0}\]
    8. Applied add-cube-cbrt3.8

      \[\leadsto \frac{\frac{x}{z} \cdot \frac{\color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}}}{\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}}}{z + 1.0}\]
    9. Applied times-frac3.8

      \[\leadsto \frac{\frac{x}{z} \cdot \color{blue}{\left(\frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{z} \cdot \sqrt[3]{z}} \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{z}}\right)}}{z + 1.0}\]
    10. Applied associate-*r*2.7

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

      \[\leadsto \frac{\color{blue}{\frac{\frac{x}{z}}{\frac{\sqrt[3]{z}}{\sqrt[3]{y}} \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{y}}}} \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{z}}}{z + 1.0}\]

    if 1.687008558896401e-106 < z < 1.0635760468403562e+63

    1. Initial program 5.1

      \[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1.0\right)}\]
    2. Using strategy rm
    3. Applied associate-/r*5.1

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

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

    if 1.0635760468403562e+63 < z

    1. Initial program 12.1

      \[\frac{x \cdot y}{\left(z \cdot z\right) \cdot \left(z + 1.0\right)}\]
    2. Using strategy rm
    3. Applied associate-/r*8.6

      \[\leadsto \color{blue}{\frac{\frac{x \cdot y}{z \cdot z}}{z + 1.0}}\]
    4. Using strategy rm
    5. Applied times-frac0.9

      \[\leadsto \frac{\color{blue}{\frac{x}{z} \cdot \frac{y}{z}}}{z + 1.0}\]
    6. Using strategy rm
    7. Applied clear-num1.2

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le 1.687008558896401 \cdot 10^{-106}:\\ \;\;\;\;\frac{\frac{\frac{x}{z}}{\frac{\sqrt[3]{z}}{\sqrt[3]{y}} \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{y}}} \cdot \frac{\sqrt[3]{y}}{\sqrt[3]{z}}}{1.0 + z}\\ \mathbf{elif}\;z \le 1.0635760468403562 \cdot 10^{+63}:\\ \;\;\;\;\frac{\frac{\frac{x \cdot y}{z}}{z}}{1.0 + z}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\frac{1.0 + z}{\frac{y}{z} \cdot \frac{x}{z}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019158 +o rules:numerics
(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 z)) x) z))

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