Average Error: 24.7 → 10.1
Time: 22.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 r479981 = x;
        double r479982 = y;
        double r479983 = r479982 - r479981;
        double r479984 = z;
        double r479985 = t;
        double r479986 = r479984 - r479985;
        double r479987 = r479983 * r479986;
        double r479988 = a;
        double r479989 = r479988 - r479985;
        double r479990 = r479987 / r479989;
        double r479991 = r479981 + r479990;
        return r479991;
}

double f(double x, double y, double z, double t, double a) {
        double r479992 = x;
        double r479993 = y;
        double r479994 = r479993 - r479992;
        double r479995 = z;
        double r479996 = t;
        double r479997 = r479995 - r479996;
        double r479998 = r479994 * r479997;
        double r479999 = a;
        double r480000 = r479999 - r479996;
        double r480001 = r479998 / r480000;
        double r480002 = r479992 + r480001;
        double r480003 = -4.18404304567741e-280;
        bool r480004 = r480002 <= r480003;
        double r480005 = cbrt(r479994);
        double r480006 = r480005 * r480005;
        double r480007 = cbrt(r480000);
        double r480008 = r480007 * r480007;
        double r480009 = r480006 / r480008;
        double r480010 = r480005 / r480007;
        double r480011 = r479997 * r480010;
        double r480012 = r480009 * r480011;
        double r480013 = r480012 + r479992;
        double r480014 = 0.0;
        bool r480015 = r480002 <= r480014;
        double r480016 = r479997 / r480000;
        double r480017 = r479994 * r480016;
        double r480018 = r480017 + r479992;
        double r480019 = r480015 ? r479993 : r480018;
        double r480020 = r480004 ? r480013 : r480019;
        return r480020;
}

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))))