Average Error: 24.7 → 10.1
Time: 21.6s
Precision: 64
\[x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\]
\[\begin{array}{l} \mathbf{if}\;x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t} \le -4.184043045677409878056891844086754114776 \cdot 10^{-280}:\\ \;\;\;\;\frac{\sqrt[3]{y - x} \cdot \sqrt[3]{y - x}}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \left(\left(z - t\right) \cdot \frac{\sqrt[3]{y - x}}{\sqrt[3]{a - t}}\right) + x\\ \mathbf{elif}\;x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t} \le 0.0:\\ \;\;\;\;y\\ \mathbf{else}:\\ \;\;\;\;\left(y - x\right) \cdot \frac{z - t}{a - t} + x\\ \end{array}\]
x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}
\begin{array}{l}
\mathbf{if}\;x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t} \le -4.184043045677409878056891844086754114776 \cdot 10^{-280}:\\
\;\;\;\;\frac{\sqrt[3]{y - x} \cdot \sqrt[3]{y - x}}{\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}} \cdot \left(\left(z - t\right) \cdot \frac{\sqrt[3]{y - x}}{\sqrt[3]{a - t}}\right) + x\\

\mathbf{elif}\;x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t} \le 0.0:\\
\;\;\;\;y\\

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

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r503388 = x;
        double r503389 = y;
        double r503390 = r503389 - r503388;
        double r503391 = z;
        double r503392 = t;
        double r503393 = r503391 - r503392;
        double r503394 = r503390 * r503393;
        double r503395 = a;
        double r503396 = r503395 - r503392;
        double r503397 = r503394 / r503396;
        double r503398 = r503388 + r503397;
        return r503398;
}

double f(double x, double y, double z, double t, double a) {
        double r503399 = x;
        double r503400 = y;
        double r503401 = r503400 - r503399;
        double r503402 = z;
        double r503403 = t;
        double r503404 = r503402 - r503403;
        double r503405 = r503401 * r503404;
        double r503406 = a;
        double r503407 = r503406 - r503403;
        double r503408 = r503405 / r503407;
        double r503409 = r503399 + r503408;
        double r503410 = -4.18404304567741e-280;
        bool r503411 = r503409 <= r503410;
        double r503412 = cbrt(r503401);
        double r503413 = r503412 * r503412;
        double r503414 = cbrt(r503407);
        double r503415 = r503414 * r503414;
        double r503416 = r503413 / r503415;
        double r503417 = r503412 / r503414;
        double r503418 = r503404 * r503417;
        double r503419 = r503416 * r503418;
        double r503420 = r503419 + r503399;
        double r503421 = 0.0;
        bool r503422 = r503409 <= r503421;
        double r503423 = r503404 / r503407;
        double r503424 = r503401 * r503423;
        double r503425 = r503424 + r503399;
        double r503426 = r503422 ? r503400 : r503425;
        double r503427 = r503411 ? r503420 : r503426;
        return r503427;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original24.7
Target9.4
Herbie10.1
\[\begin{array}{l} \mathbf{if}\;a \lt -1.615306284544257464183904494091872805513 \cdot 10^{-142}:\\ \;\;\;\;x + \frac{y - x}{1} \cdot \frac{z - t}{a - t}\\ \mathbf{elif}\;a \lt 3.774403170083174201868024161554637965035 \cdot 10^{-182}:\\ \;\;\;\;y - \frac{z}{t} \cdot \left(y - x\right)\\ \mathbf{else}:\\ \;\;\;\;x + \frac{y - x}{1} \cdot \frac{z - t}{a - t}\\ \end{array}\]

Derivation

  1. Split input into 3 regimes
  2. if (+ x (/ (* (- y x) (- z t)) (- a t))) < -4.18404304567741e-280

    1. Initial program 21.3

      \[x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\]
    2. Simplified11.0

      \[\leadsto \color{blue}{x + \frac{y - x}{a - t} \cdot \left(z - t\right)}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt11.6

      \[\leadsto x + \frac{y - x}{\color{blue}{\left(\sqrt[3]{a - t} \cdot \sqrt[3]{a - t}\right) \cdot \sqrt[3]{a - t}}} \cdot \left(z - t\right)\]
    5. Applied add-cube-cbrt11.7

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

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

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

    if -4.18404304567741e-280 < (+ x (/ (* (- y x) (- z t)) (- a t))) < 0.0

    1. Initial program 59.5

      \[x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\]
    2. Simplified59.7

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

      \[\leadsto \color{blue}{y}\]

    if 0.0 < (+ x (/ (* (- y x) (- z t)) (- a t)))

    1. Initial program 21.5

      \[x + \frac{\left(y - x\right) \cdot \left(z - t\right)}{a - t}\]
    2. Simplified10.5

      \[\leadsto \color{blue}{x + \frac{y - x}{a - t} \cdot \left(z - t\right)}\]
    3. Using strategy rm
    4. Applied div-inv10.6

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

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

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

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

Reproduce

herbie shell --seed 2019194 
(FPCore (x y z t a)
  :name "Graphics.Rendering.Chart.Axis.Types:linMap from Chart-1.5.3"

  :herbie-target
  (if (< a -1.6153062845442575e-142) (+ x (* (/ (- y x) 1.0) (/ (- z t) (- a t)))) (if (< a 3.774403170083174e-182) (- y (* (/ z t) (- y x))) (+ x (* (/ (- y x) 1.0) (/ (- z t) (- a t))))))

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