Average Error: 4.8 → 6.7
Time: 1.7m
Precision: 64
\[x \cdot \left(\frac{y}{z} - \frac{t}{1 - z}\right)\]
\[\begin{array}{l} \mathbf{if}\;y \le -3.599161882380860986274067861276296814944 \cdot 10^{161}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, \mathsf{fma}\left(\frac{1}{z}, \frac{t}{z} \cdot \left(\sqrt[3]{-1} \cdot \left(x \cdot \sqrt[3]{-1}\right)\right), \frac{t}{z} \cdot \left(\sqrt[3]{-1} \cdot \left(x \cdot \sqrt[3]{-1}\right)\right)\right)\right)\\ \mathbf{elif}\;y \le 4.007151337874132693715778122963539496426 \cdot 10^{77}:\\ \;\;\;\;\left(\frac{y}{z} - \left(\left(\sqrt[3]{-1} \cdot \sqrt[3]{-t}\right) \cdot \sqrt[3]{t}\right) \cdot \frac{\sqrt[3]{t}}{1 - z}\right) \cdot x\\ \mathbf{elif}\;y \le 2.281820999912937139505132332138038958965 \cdot 10^{119}:\\ \;\;\;\;\frac{\left(y \cdot \left(1 - z\right) - z \cdot t\right) \cdot x}{z \cdot \left(1 - z\right)}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, \mathsf{fma}\left(\frac{1}{z}, \frac{t}{z} \cdot \left(\sqrt[3]{-1} \cdot \left(x \cdot \sqrt[3]{-1}\right)\right), \frac{t}{z} \cdot \left(\sqrt[3]{-1} \cdot \left(x \cdot \sqrt[3]{-1}\right)\right)\right)\right)\\ \end{array}\]
x \cdot \left(\frac{y}{z} - \frac{t}{1 - z}\right)
\begin{array}{l}
\mathbf{if}\;y \le -3.599161882380860986274067861276296814944 \cdot 10^{161}:\\
\;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, \mathsf{fma}\left(\frac{1}{z}, \frac{t}{z} \cdot \left(\sqrt[3]{-1} \cdot \left(x \cdot \sqrt[3]{-1}\right)\right), \frac{t}{z} \cdot \left(\sqrt[3]{-1} \cdot \left(x \cdot \sqrt[3]{-1}\right)\right)\right)\right)\\

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

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

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, \mathsf{fma}\left(\frac{1}{z}, \frac{t}{z} \cdot \left(\sqrt[3]{-1} \cdot \left(x \cdot \sqrt[3]{-1}\right)\right), \frac{t}{z} \cdot \left(\sqrt[3]{-1} \cdot \left(x \cdot \sqrt[3]{-1}\right)\right)\right)\right)\\

\end{array}
double f(double x, double y, double z, double t) {
        double r17870302 = x;
        double r17870303 = y;
        double r17870304 = z;
        double r17870305 = r17870303 / r17870304;
        double r17870306 = t;
        double r17870307 = 1.0;
        double r17870308 = r17870307 - r17870304;
        double r17870309 = r17870306 / r17870308;
        double r17870310 = r17870305 - r17870309;
        double r17870311 = r17870302 * r17870310;
        return r17870311;
}

double f(double x, double y, double z, double t) {
        double r17870312 = y;
        double r17870313 = -3.599161882380861e+161;
        bool r17870314 = r17870312 <= r17870313;
        double r17870315 = x;
        double r17870316 = z;
        double r17870317 = r17870315 / r17870316;
        double r17870318 = 1.0;
        double r17870319 = r17870318 / r17870316;
        double r17870320 = t;
        double r17870321 = r17870320 / r17870316;
        double r17870322 = -1.0;
        double r17870323 = cbrt(r17870322);
        double r17870324 = r17870315 * r17870323;
        double r17870325 = r17870323 * r17870324;
        double r17870326 = r17870321 * r17870325;
        double r17870327 = fma(r17870319, r17870326, r17870326);
        double r17870328 = fma(r17870317, r17870312, r17870327);
        double r17870329 = 4.0071513378741327e+77;
        bool r17870330 = r17870312 <= r17870329;
        double r17870331 = r17870312 / r17870316;
        double r17870332 = -r17870320;
        double r17870333 = cbrt(r17870332);
        double r17870334 = r17870323 * r17870333;
        double r17870335 = cbrt(r17870320);
        double r17870336 = r17870334 * r17870335;
        double r17870337 = r17870318 - r17870316;
        double r17870338 = r17870335 / r17870337;
        double r17870339 = r17870336 * r17870338;
        double r17870340 = r17870331 - r17870339;
        double r17870341 = r17870340 * r17870315;
        double r17870342 = 2.281820999912937e+119;
        bool r17870343 = r17870312 <= r17870342;
        double r17870344 = r17870312 * r17870337;
        double r17870345 = r17870316 * r17870320;
        double r17870346 = r17870344 - r17870345;
        double r17870347 = r17870346 * r17870315;
        double r17870348 = r17870316 * r17870337;
        double r17870349 = r17870347 / r17870348;
        double r17870350 = r17870343 ? r17870349 : r17870328;
        double r17870351 = r17870330 ? r17870341 : r17870350;
        double r17870352 = r17870314 ? r17870328 : r17870351;
        return r17870352;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Target

Original4.8
Target4.5
Herbie6.7
\[\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 < -3.599161882380861e+161 or 2.281820999912937e+119 < y

    1. Initial program 13.0

      \[x \cdot \left(\frac{y}{z} - \frac{t}{1 - z}\right)\]
    2. Using strategy rm
    3. Applied *-un-lft-identity13.0

      \[\leadsto x \cdot \left(\frac{y}{z} - \frac{t}{\color{blue}{1 \cdot \left(1 - z\right)}}\right)\]
    4. Applied add-cube-cbrt13.1

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

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

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

      \[\leadsto x \cdot \left(\frac{y}{z} - \left(\sqrt[3]{t} \cdot \color{blue}{\left({\left(t \cdot -1\right)}^{\frac{1}{3}} \cdot \sqrt[3]{-1}\right)}\right) \cdot \frac{\sqrt[3]{t}}{1 - z}\right)\]
    8. Simplified13.1

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

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

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

    if -3.599161882380861e+161 < y < 4.0071513378741327e+77

    1. Initial program 2.5

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

      \[\leadsto x \cdot \left(\frac{y}{z} - \frac{t}{\color{blue}{1 \cdot \left(1 - z\right)}}\right)\]
    4. Applied add-cube-cbrt3.0

      \[\leadsto x \cdot \left(\frac{y}{z} - \frac{\color{blue}{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}}}{1 \cdot \left(1 - z\right)}\right)\]
    5. Applied times-frac3.0

      \[\leadsto x \cdot \left(\frac{y}{z} - \color{blue}{\frac{\sqrt[3]{t} \cdot \sqrt[3]{t}}{1} \cdot \frac{\sqrt[3]{t}}{1 - z}}\right)\]
    6. Simplified3.0

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

      \[\leadsto x \cdot \left(\frac{y}{z} - \left(\sqrt[3]{t} \cdot \color{blue}{\left({\left(t \cdot -1\right)}^{\frac{1}{3}} \cdot \sqrt[3]{-1}\right)}\right) \cdot \frac{\sqrt[3]{t}}{1 - z}\right)\]
    8. Simplified3.0

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

    if 4.0071513378741327e+77 < y < 2.281820999912937e+119

    1. Initial program 4.5

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

      \[\leadsto x \cdot \left(\frac{y}{z} - \frac{t}{\color{blue}{1 \cdot \left(1 - z\right)}}\right)\]
    4. Applied add-cube-cbrt4.7

      \[\leadsto x \cdot \left(\frac{y}{z} - \frac{\color{blue}{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}}}{1 \cdot \left(1 - z\right)}\right)\]
    5. Applied times-frac4.7

      \[\leadsto x \cdot \left(\frac{y}{z} - \color{blue}{\frac{\sqrt[3]{t} \cdot \sqrt[3]{t}}{1} \cdot \frac{\sqrt[3]{t}}{1 - z}}\right)\]
    6. Simplified4.7

      \[\leadsto x \cdot \left(\frac{y}{z} - \color{blue}{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right)} \cdot \frac{\sqrt[3]{t}}{1 - z}\right)\]
    7. Using strategy rm
    8. Applied associate-*r/4.7

      \[\leadsto x \cdot \left(\frac{y}{z} - \color{blue}{\frac{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}}{1 - z}}\right)\]
    9. Applied frac-sub27.2

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

      \[\leadsto \color{blue}{\frac{x \cdot \left(y \cdot \left(1 - z\right) - z \cdot \left(\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \sqrt[3]{t}\right)\right)}{z \cdot \left(1 - z\right)}}\]
    11. Simplified27.7

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;y \le -3.599161882380860986274067861276296814944 \cdot 10^{161}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, \mathsf{fma}\left(\frac{1}{z}, \frac{t}{z} \cdot \left(\sqrt[3]{-1} \cdot \left(x \cdot \sqrt[3]{-1}\right)\right), \frac{t}{z} \cdot \left(\sqrt[3]{-1} \cdot \left(x \cdot \sqrt[3]{-1}\right)\right)\right)\right)\\ \mathbf{elif}\;y \le 4.007151337874132693715778122963539496426 \cdot 10^{77}:\\ \;\;\;\;\left(\frac{y}{z} - \left(\left(\sqrt[3]{-1} \cdot \sqrt[3]{-t}\right) \cdot \sqrt[3]{t}\right) \cdot \frac{\sqrt[3]{t}}{1 - z}\right) \cdot x\\ \mathbf{elif}\;y \le 2.281820999912937139505132332138038958965 \cdot 10^{119}:\\ \;\;\;\;\frac{\left(y \cdot \left(1 - z\right) - z \cdot t\right) \cdot x}{z \cdot \left(1 - z\right)}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, \mathsf{fma}\left(\frac{1}{z}, \frac{t}{z} \cdot \left(\sqrt[3]{-1} \cdot \left(x \cdot \sqrt[3]{-1}\right)\right), \frac{t}{z} \cdot \left(\sqrt[3]{-1} \cdot \left(x \cdot \sqrt[3]{-1}\right)\right)\right)\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019169 +o rules:numerics
(FPCore (x y z t)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, C"

  :herbie-target
  (if (< (* x (- (/ y z) (/ t (- 1.0 z)))) -7.623226303312042e-196) (* x (- (/ y z) (* t (/ 1.0 (- 1.0 z))))) (if (< (* x (- (/ y z) (/ t (- 1.0 z)))) 1.4133944927702302e-211) (+ (/ (* y x) z) (- (/ (* t x) (- 1.0 z)))) (* x (- (/ y z) (* t (/ 1.0 (- 1.0 z)))))))

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