Average Error: 2.3 → 1.8
Time: 5.4s
Precision: 64
\[\frac{x}{y} \cdot \left(z - t\right) + t\]
\[\begin{array}{l} \mathbf{if}\;x \le -65880637746913342896120675670310776733700:\\ \;\;\;\;\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{1} \cdot \left(\frac{\sqrt[3]{x}}{y} \cdot \left(z - t\right)\right) + t\\ \mathbf{elif}\;x \le -2.599483881294392560239504629277942316765 \cdot 10^{-235}:\\ \;\;\;\;\left(\frac{x \cdot z}{y} - \frac{t \cdot x}{y}\right) + t\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{y} \cdot \left(z - t\right) + t\\ \end{array}\]
\frac{x}{y} \cdot \left(z - t\right) + t
\begin{array}{l}
\mathbf{if}\;x \le -65880637746913342896120675670310776733700:\\
\;\;\;\;\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{1} \cdot \left(\frac{\sqrt[3]{x}}{y} \cdot \left(z - t\right)\right) + t\\

\mathbf{elif}\;x \le -2.599483881294392560239504629277942316765 \cdot 10^{-235}:\\
\;\;\;\;\left(\frac{x \cdot z}{y} - \frac{t \cdot x}{y}\right) + t\\

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

\end{array}
double f(double x, double y, double z, double t) {
        double r487159 = x;
        double r487160 = y;
        double r487161 = r487159 / r487160;
        double r487162 = z;
        double r487163 = t;
        double r487164 = r487162 - r487163;
        double r487165 = r487161 * r487164;
        double r487166 = r487165 + r487163;
        return r487166;
}

double f(double x, double y, double z, double t) {
        double r487167 = x;
        double r487168 = -6.588063774691334e+40;
        bool r487169 = r487167 <= r487168;
        double r487170 = cbrt(r487167);
        double r487171 = r487170 * r487170;
        double r487172 = 1.0;
        double r487173 = r487171 / r487172;
        double r487174 = y;
        double r487175 = r487170 / r487174;
        double r487176 = z;
        double r487177 = t;
        double r487178 = r487176 - r487177;
        double r487179 = r487175 * r487178;
        double r487180 = r487173 * r487179;
        double r487181 = r487180 + r487177;
        double r487182 = -2.5994838812943926e-235;
        bool r487183 = r487167 <= r487182;
        double r487184 = r487167 * r487176;
        double r487185 = r487184 / r487174;
        double r487186 = r487177 * r487167;
        double r487187 = r487186 / r487174;
        double r487188 = r487185 - r487187;
        double r487189 = r487188 + r487177;
        double r487190 = r487167 / r487174;
        double r487191 = r487190 * r487178;
        double r487192 = r487191 + r487177;
        double r487193 = r487183 ? r487189 : r487192;
        double r487194 = r487169 ? r487181 : r487193;
        return r487194;
}

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

Original2.3
Target2.3
Herbie1.8
\[\begin{array}{l} \mathbf{if}\;z \lt 2.759456554562692182563154937894909044548 \cdot 10^{-282}:\\ \;\;\;\;\frac{x}{y} \cdot \left(z - t\right) + t\\ \mathbf{elif}\;z \lt 2.32699445087443595687739933019129648094 \cdot 10^{-110}:\\ \;\;\;\;x \cdot \frac{z - t}{y} + t\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{y} \cdot \left(z - t\right) + t\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if x < -6.588063774691334e+40

    1. Initial program 4.9

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

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

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

      \[\leadsto \color{blue}{\left(\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{1} \cdot \frac{\sqrt[3]{x}}{y}\right)} \cdot \left(z - t\right) + t\]
    6. Applied associate-*l*2.2

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

    if -6.588063774691334e+40 < x < -2.5994838812943926e-235

    1. Initial program 0.9

      \[\frac{x}{y} \cdot \left(z - t\right) + t\]
    2. Using strategy rm
    3. Applied add-cube-cbrt1.3

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

      \[\leadsto \color{blue}{\left(\frac{x}{y} \cdot \left(\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}\right)\right) \cdot \sqrt[3]{z - t}} + t\]
    5. Taylor expanded around 0 0.9

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

    if -2.5994838812943926e-235 < x

    1. Initial program 2.2

      \[\frac{x}{y} \cdot \left(z - t\right) + t\]
  3. Recombined 3 regimes into one program.
  4. Final simplification1.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;x \le -65880637746913342896120675670310776733700:\\ \;\;\;\;\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{1} \cdot \left(\frac{\sqrt[3]{x}}{y} \cdot \left(z - t\right)\right) + t\\ \mathbf{elif}\;x \le -2.599483881294392560239504629277942316765 \cdot 10^{-235}:\\ \;\;\;\;\left(\frac{x \cdot z}{y} - \frac{t \cdot x}{y}\right) + t\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{y} \cdot \left(z - t\right) + t\\ \end{array}\]

Reproduce

herbie shell --seed 2019356 
(FPCore (x y z t)
  :name "Numeric.Signal.Multichannel:$cget from hsignal-0.2.7.1"
  :precision binary64

  :herbie-target
  (if (< z 2.759456554562692e-282) (+ (* (/ x y) (- z t)) t) (if (< z 2.326994450874436e-110) (+ (* x (/ (- z t) y)) t) (+ (* (/ x y) (- z t)) t)))

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