Average Error: 14.6 → 8.8
Time: 10.3s
Precision: 64
\[x + \left(y - z\right) \cdot \frac{t - x}{a - z}\]
\[\begin{array}{l} \mathbf{if}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -3.4192536638792013 \cdot 10^{-292}:\\ \;\;\;\;x + \left(\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}\right) \cdot \left(\left(\left(\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}\right) \cdot \sqrt[3]{y - z}\right) \cdot \frac{\sqrt[3]{t - x}}{a - z}\right)\\ \mathbf{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 6.6062719945659395 \cdot 10^{-181}:\\ \;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\ \mathbf{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 7.37349113609634138 \cdot 10^{307}:\\ \;\;\;\;x + \left(y - z\right) \cdot \frac{t - x}{a - z}\\ \mathbf{else}:\\ \;\;\;\;x + \left(\left(y - z\right) \cdot \left(t - x\right)\right) \cdot \frac{1}{a - z}\\ \end{array}\]
x + \left(y - z\right) \cdot \frac{t - x}{a - z}
\begin{array}{l}
\mathbf{if}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -3.4192536638792013 \cdot 10^{-292}:\\
\;\;\;\;x + \left(\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}\right) \cdot \left(\left(\left(\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}\right) \cdot \sqrt[3]{y - z}\right) \cdot \frac{\sqrt[3]{t - x}}{a - z}\right)\\

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

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

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

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r138513 = x;
        double r138514 = y;
        double r138515 = z;
        double r138516 = r138514 - r138515;
        double r138517 = t;
        double r138518 = r138517 - r138513;
        double r138519 = a;
        double r138520 = r138519 - r138515;
        double r138521 = r138518 / r138520;
        double r138522 = r138516 * r138521;
        double r138523 = r138513 + r138522;
        return r138523;
}

double f(double x, double y, double z, double t, double a) {
        double r138524 = x;
        double r138525 = y;
        double r138526 = z;
        double r138527 = r138525 - r138526;
        double r138528 = t;
        double r138529 = r138528 - r138524;
        double r138530 = a;
        double r138531 = r138530 - r138526;
        double r138532 = r138529 / r138531;
        double r138533 = r138527 * r138532;
        double r138534 = r138524 + r138533;
        double r138535 = -3.4192536638792013e-292;
        bool r138536 = r138534 <= r138535;
        double r138537 = cbrt(r138527);
        double r138538 = r138537 * r138537;
        double r138539 = cbrt(r138529);
        double r138540 = r138539 * r138539;
        double r138541 = r138540 * r138537;
        double r138542 = r138539 / r138531;
        double r138543 = r138541 * r138542;
        double r138544 = r138538 * r138543;
        double r138545 = r138524 + r138544;
        double r138546 = 6.60627199456594e-181;
        bool r138547 = r138534 <= r138546;
        double r138548 = r138524 * r138525;
        double r138549 = r138548 / r138526;
        double r138550 = r138549 + r138528;
        double r138551 = r138528 * r138525;
        double r138552 = r138551 / r138526;
        double r138553 = r138550 - r138552;
        double r138554 = 7.373491136096341e+307;
        bool r138555 = r138534 <= r138554;
        double r138556 = r138527 * r138529;
        double r138557 = 1.0;
        double r138558 = r138557 / r138531;
        double r138559 = r138556 * r138558;
        double r138560 = r138524 + r138559;
        double r138561 = r138555 ? r138534 : r138560;
        double r138562 = r138547 ? r138553 : r138561;
        double r138563 = r138536 ? r138545 : r138562;
        return r138563;
}

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

Derivation

  1. Split input into 4 regimes
  2. if (+ x (* (- y z) (/ (- t x) (- a z)))) < -3.4192536638792013e-292

    1. Initial program 7.6

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

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

      \[\leadsto x + \color{blue}{\left(\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}\right) \cdot \left(\sqrt[3]{y - z} \cdot \frac{t - x}{a - z}\right)}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity8.3

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

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

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

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

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

    if -3.4192536638792013e-292 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 6.60627199456594e-181

    1. Initial program 54.3

      \[x + \left(y - z\right) \cdot \frac{t - x}{a - z}\]
    2. Taylor expanded around inf 28.0

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

    if 6.60627199456594e-181 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 7.373491136096341e+307

    1. Initial program 3.3

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

    if 7.373491136096341e+307 < (+ x (* (- y z) (/ (- t x) (- a z))))

    1. Initial program 60.2

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -3.4192536638792013 \cdot 10^{-292}:\\ \;\;\;\;x + \left(\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}\right) \cdot \left(\left(\left(\sqrt[3]{t - x} \cdot \sqrt[3]{t - x}\right) \cdot \sqrt[3]{y - z}\right) \cdot \frac{\sqrt[3]{t - x}}{a - z}\right)\\ \mathbf{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 6.6062719945659395 \cdot 10^{-181}:\\ \;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\ \mathbf{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 7.37349113609634138 \cdot 10^{307}:\\ \;\;\;\;x + \left(y - z\right) \cdot \frac{t - x}{a - z}\\ \mathbf{else}:\\ \;\;\;\;x + \left(\left(y - z\right) \cdot \left(t - x\right)\right) \cdot \frac{1}{a - z}\\ \end{array}\]

Reproduce

herbie shell --seed 2020083 
(FPCore (x y z t a)
  :name "Numeric.Signal:interpolate   from hsignal-0.2.7.1"
  :precision binary64
  (+ x (* (- y z) (/ (- t x) (- a z)))))