Average Error: 14.7 → 9.1
Time: 31.7s
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.867303041981070679871241611855041259303 \cdot 10^{-127}:\\ \;\;\;\;x + \left(y - z\right) \cdot \frac{t - x}{a - z}\\ \mathbf{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0:\\ \;\;\;\;y \cdot \left(\frac{x}{z} - \frac{t}{z}\right) + t\\ \mathbf{elif}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 26593146023651132:\\ \;\;\;\;x + \left(\left(y - z\right) \cdot \left(t - x\right)\right) \cdot \frac{1}{a - z}\\ \mathbf{else}:\\ \;\;\;\;x + \left(y - z\right) \cdot \frac{t - x}{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.867303041981070679871241611855041259303 \cdot 10^{-127}:\\
\;\;\;\;x + \left(y - z\right) \cdot \frac{t - x}{a - z}\\

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

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

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

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r81192 = x;
        double r81193 = y;
        double r81194 = z;
        double r81195 = r81193 - r81194;
        double r81196 = t;
        double r81197 = r81196 - r81192;
        double r81198 = a;
        double r81199 = r81198 - r81194;
        double r81200 = r81197 / r81199;
        double r81201 = r81195 * r81200;
        double r81202 = r81192 + r81201;
        return r81202;
}

double f(double x, double y, double z, double t, double a) {
        double r81203 = x;
        double r81204 = y;
        double r81205 = z;
        double r81206 = r81204 - r81205;
        double r81207 = t;
        double r81208 = r81207 - r81203;
        double r81209 = a;
        double r81210 = r81209 - r81205;
        double r81211 = r81208 / r81210;
        double r81212 = r81206 * r81211;
        double r81213 = r81203 + r81212;
        double r81214 = -3.867303041981071e-127;
        bool r81215 = r81213 <= r81214;
        double r81216 = 0.0;
        bool r81217 = r81213 <= r81216;
        double r81218 = r81203 / r81205;
        double r81219 = r81207 / r81205;
        double r81220 = r81218 - r81219;
        double r81221 = r81204 * r81220;
        double r81222 = r81221 + r81207;
        double r81223 = 26593146023651132.0;
        bool r81224 = r81213 <= r81223;
        double r81225 = r81206 * r81208;
        double r81226 = 1.0;
        double r81227 = r81226 / r81210;
        double r81228 = r81225 * r81227;
        double r81229 = r81203 + r81228;
        double r81230 = r81224 ? r81229 : r81213;
        double r81231 = r81217 ? r81222 : r81230;
        double r81232 = r81215 ? r81213 : r81231;
        return r81232;
}

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 3 regimes
  2. if (+ x (* (- y z) (/ (- t x) (- a z)))) < -3.867303041981071e-127 or 26593146023651132.0 < (+ x (* (- y z) (/ (- t x) (- a z))))

    1. Initial program 5.4

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

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

    1. Initial program 50.4

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

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

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

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

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

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

    1. Initial program 13.0

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

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

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

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

Reproduce

herbie shell --seed 2019304 
(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)))))