Average Error: 4.6 → 0.6
Time: 11.7s
Precision: 64
\[x \cdot \left(\frac{y}{z} - \frac{t}{1 - z}\right)\]
\[\begin{array}{l} \mathbf{if}\;\frac{y}{z} - \frac{t}{1 - z} \le -8.578752989501030958097123839651699240527 \cdot 10^{300}:\\ \;\;\;\;\frac{x \cdot \left(y \cdot \left(1 - z\right) - z \cdot t\right)}{z \cdot \left(1 - z\right)}\\ \mathbf{elif}\;\frac{y}{z} - \frac{t}{1 - z} \le -8.674483735738366864989906414743832225827 \cdot 10^{-268}:\\ \;\;\;\;x \cdot \left(\frac{y}{z} - \frac{1}{\frac{1 - z}{t}}\right)\\ \mathbf{elif}\;\frac{y}{z} - \frac{t}{1 - z} \le 0.0:\\ \;\;\;\;\frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{{\left(\sqrt[3]{z}\right)}^{2}} \cdot \frac{x}{\frac{\sqrt[3]{z}}{\sqrt[3]{y}}} + \left(1 \cdot \frac{t \cdot x}{{z}^{2}} + \frac{t \cdot x}{z}\right)\\ \mathbf{elif}\;\frac{y}{z} - \frac{t}{1 - z} \le 1.221597588228970858235819909623175745754 \cdot 10^{229}:\\ \;\;\;\;x \cdot \left(\frac{y}{z} - \frac{1}{\frac{1 - z}{t}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{x \cdot \left(y \cdot \left(1 - z\right) - z \cdot t\right)}{z \cdot \left(1 - z\right)}\\ \end{array}\]
x \cdot \left(\frac{y}{z} - \frac{t}{1 - z}\right)
\begin{array}{l}
\mathbf{if}\;\frac{y}{z} - \frac{t}{1 - z} \le -8.578752989501030958097123839651699240527 \cdot 10^{300}:\\
\;\;\;\;\frac{x \cdot \left(y \cdot \left(1 - z\right) - z \cdot t\right)}{z \cdot \left(1 - z\right)}\\

\mathbf{elif}\;\frac{y}{z} - \frac{t}{1 - z} \le -8.674483735738366864989906414743832225827 \cdot 10^{-268}:\\
\;\;\;\;x \cdot \left(\frac{y}{z} - \frac{1}{\frac{1 - z}{t}}\right)\\

\mathbf{elif}\;\frac{y}{z} - \frac{t}{1 - z} \le 0.0:\\
\;\;\;\;\frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{{\left(\sqrt[3]{z}\right)}^{2}} \cdot \frac{x}{\frac{\sqrt[3]{z}}{\sqrt[3]{y}}} + \left(1 \cdot \frac{t \cdot x}{{z}^{2}} + \frac{t \cdot x}{z}\right)\\

\mathbf{elif}\;\frac{y}{z} - \frac{t}{1 - z} \le 1.221597588228970858235819909623175745754 \cdot 10^{229}:\\
\;\;\;\;x \cdot \left(\frac{y}{z} - \frac{1}{\frac{1 - z}{t}}\right)\\

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

\end{array}
double f(double x, double y, double z, double t) {
        double r336118 = x;
        double r336119 = y;
        double r336120 = z;
        double r336121 = r336119 / r336120;
        double r336122 = t;
        double r336123 = 1.0;
        double r336124 = r336123 - r336120;
        double r336125 = r336122 / r336124;
        double r336126 = r336121 - r336125;
        double r336127 = r336118 * r336126;
        return r336127;
}

double f(double x, double y, double z, double t) {
        double r336128 = y;
        double r336129 = z;
        double r336130 = r336128 / r336129;
        double r336131 = t;
        double r336132 = 1.0;
        double r336133 = r336132 - r336129;
        double r336134 = r336131 / r336133;
        double r336135 = r336130 - r336134;
        double r336136 = -8.578752989501031e+300;
        bool r336137 = r336135 <= r336136;
        double r336138 = x;
        double r336139 = r336128 * r336133;
        double r336140 = r336129 * r336131;
        double r336141 = r336139 - r336140;
        double r336142 = r336138 * r336141;
        double r336143 = r336129 * r336133;
        double r336144 = r336142 / r336143;
        double r336145 = -8.674483735738367e-268;
        bool r336146 = r336135 <= r336145;
        double r336147 = 1.0;
        double r336148 = r336133 / r336131;
        double r336149 = r336147 / r336148;
        double r336150 = r336130 - r336149;
        double r336151 = r336138 * r336150;
        double r336152 = 0.0;
        bool r336153 = r336135 <= r336152;
        double r336154 = cbrt(r336128);
        double r336155 = r336154 * r336154;
        double r336156 = cbrt(r336129);
        double r336157 = 2.0;
        double r336158 = pow(r336156, r336157);
        double r336159 = r336155 / r336158;
        double r336160 = r336156 / r336154;
        double r336161 = r336138 / r336160;
        double r336162 = r336159 * r336161;
        double r336163 = r336131 * r336138;
        double r336164 = pow(r336129, r336157);
        double r336165 = r336163 / r336164;
        double r336166 = r336132 * r336165;
        double r336167 = r336163 / r336129;
        double r336168 = r336166 + r336167;
        double r336169 = r336162 + r336168;
        double r336170 = 1.2215975882289709e+229;
        bool r336171 = r336135 <= r336170;
        double r336172 = r336171 ? r336151 : r336144;
        double r336173 = r336153 ? r336169 : r336172;
        double r336174 = r336146 ? r336151 : r336173;
        double r336175 = r336137 ? r336144 : r336174;
        return r336175;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original4.6
Target4.2
Herbie0.6
\[\begin{array}{l} \mathbf{if}\;x \cdot \left(\frac{y}{z} - \frac{t}{1 - z}\right) \lt -7.623226303312042442144691872793570510727 \cdot 10^{-196}:\\ \;\;\;\;x \cdot \left(\frac{y}{z} - t \cdot \frac{1}{1 - z}\right)\\ \mathbf{elif}\;x \cdot \left(\frac{y}{z} - \frac{t}{1 - z}\right) \lt 1.413394492770230216018398633584271456447 \cdot 10^{-211}:\\ \;\;\;\;\frac{y \cdot x}{z} + \left(-\frac{t \cdot x}{1 - z}\right)\\ \mathbf{else}:\\ \;\;\;\;x \cdot \left(\frac{y}{z} - t \cdot \frac{1}{1 - z}\right)\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if (- (/ y z) (/ t (- 1.0 z))) < -8.578752989501031e+300 or 1.2215975882289709e+229 < (- (/ y z) (/ t (- 1.0 z)))

    1. Initial program 33.3

      \[x \cdot \left(\frac{y}{z} - \frac{t}{1 - z}\right)\]
    2. Using strategy rm
    3. Applied frac-sub35.5

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

      \[\leadsto \color{blue}{\frac{x \cdot \left(y \cdot \left(1 - z\right) - z \cdot t\right)}{z \cdot \left(1 - z\right)}}\]

    if -8.578752989501031e+300 < (- (/ y z) (/ t (- 1.0 z))) < -8.674483735738367e-268 or 0.0 < (- (/ y z) (/ t (- 1.0 z))) < 1.2215975882289709e+229

    1. Initial program 0.7

      \[x \cdot \left(\frac{y}{z} - \frac{t}{1 - z}\right)\]
    2. Using strategy rm
    3. Applied clear-num0.8

      \[\leadsto x \cdot \left(\frac{y}{z} - \color{blue}{\frac{1}{\frac{1 - z}{t}}}\right)\]

    if -8.674483735738367e-268 < (- (/ y z) (/ t (- 1.0 z))) < 0.0

    1. Initial program 13.2

      \[x \cdot \left(\frac{y}{z} - \frac{t}{1 - z}\right)\]
    2. Using strategy rm
    3. Applied clear-num13.8

      \[\leadsto x \cdot \left(\frac{y}{z} - \color{blue}{\frac{1}{\frac{1 - z}{t}}}\right)\]
    4. Taylor expanded around inf 0.1

      \[\leadsto \color{blue}{\frac{x \cdot y}{z} + \left(1 \cdot \frac{t \cdot x}{{z}^{2}} + \frac{t \cdot x}{z}\right)}\]
    5. Using strategy rm
    6. Applied associate-/l*8.7

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

      \[\leadsto \frac{x}{\frac{z}{\color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}}}} + \left(1 \cdot \frac{t \cdot x}{{z}^{2}} + \frac{t \cdot x}{z}\right)\]
    9. Applied add-cube-cbrt8.7

      \[\leadsto \frac{x}{\frac{\color{blue}{\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}}}{\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}}} + \left(1 \cdot \frac{t \cdot x}{{z}^{2}} + \frac{t \cdot x}{z}\right)\]
    10. Applied times-frac8.7

      \[\leadsto \frac{x}{\color{blue}{\frac{\sqrt[3]{z} \cdot \sqrt[3]{z}}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{y}}}} + \left(1 \cdot \frac{t \cdot x}{{z}^{2}} + \frac{t \cdot x}{z}\right)\]
    11. Applied *-un-lft-identity8.7

      \[\leadsto \frac{\color{blue}{1 \cdot x}}{\frac{\sqrt[3]{z} \cdot \sqrt[3]{z}}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{y}}} + \left(1 \cdot \frac{t \cdot x}{{z}^{2}} + \frac{t \cdot x}{z}\right)\]
    12. Applied times-frac1.1

      \[\leadsto \color{blue}{\frac{1}{\frac{\sqrt[3]{z} \cdot \sqrt[3]{z}}{\sqrt[3]{y} \cdot \sqrt[3]{y}}} \cdot \frac{x}{\frac{\sqrt[3]{z}}{\sqrt[3]{y}}}} + \left(1 \cdot \frac{t \cdot x}{{z}^{2}} + \frac{t \cdot x}{z}\right)\]
    13. Simplified0.9

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{y}{z} - \frac{t}{1 - z} \le -8.578752989501030958097123839651699240527 \cdot 10^{300}:\\ \;\;\;\;\frac{x \cdot \left(y \cdot \left(1 - z\right) - z \cdot t\right)}{z \cdot \left(1 - z\right)}\\ \mathbf{elif}\;\frac{y}{z} - \frac{t}{1 - z} \le -8.674483735738366864989906414743832225827 \cdot 10^{-268}:\\ \;\;\;\;x \cdot \left(\frac{y}{z} - \frac{1}{\frac{1 - z}{t}}\right)\\ \mathbf{elif}\;\frac{y}{z} - \frac{t}{1 - z} \le 0.0:\\ \;\;\;\;\frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{{\left(\sqrt[3]{z}\right)}^{2}} \cdot \frac{x}{\frac{\sqrt[3]{z}}{\sqrt[3]{y}}} + \left(1 \cdot \frac{t \cdot x}{{z}^{2}} + \frac{t \cdot x}{z}\right)\\ \mathbf{elif}\;\frac{y}{z} - \frac{t}{1 - z} \le 1.221597588228970858235819909623175745754 \cdot 10^{229}:\\ \;\;\;\;x \cdot \left(\frac{y}{z} - \frac{1}{\frac{1 - z}{t}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{x \cdot \left(y \cdot \left(1 - z\right) - z \cdot t\right)}{z \cdot \left(1 - z\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019294 
(FPCore (x y z t)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, C"
  :precision binary64

  :herbie-target
  (if (< (* x (- (/ y z) (/ t (- 1 z)))) -7.62322630331204244e-196) (* x (- (/ y z) (* t (/ 1 (- 1 z))))) (if (< (* x (- (/ y z) (/ t (- 1 z)))) 1.41339449277023022e-211) (+ (/ (* y x) z) (- (/ (* t x) (- 1 z)))) (* x (- (/ y z) (* t (/ 1 (- 1 z)))))))

  (* x (- (/ y z) (/ t (- 1 z)))))