Average Error: 14.7 → 10.5
Time: 19.2s
Precision: 64
\[x + \left(y - z\right) \cdot \frac{t - x}{a - z}\]
\[\begin{array}{l} \mathbf{if}\;a \le -2.86137284329269328 \cdot 10^{-131} \lor \neg \left(a \le 6.6071651262864259 \cdot 10^{-200}\right):\\ \;\;\;\;x + \frac{y - z}{a - z} \cdot \frac{\sqrt[3]{1}}{\frac{1}{t - x}}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\ \end{array}\]
x + \left(y - z\right) \cdot \frac{t - x}{a - z}
\begin{array}{l}
\mathbf{if}\;a \le -2.86137284329269328 \cdot 10^{-131} \lor \neg \left(a \le 6.6071651262864259 \cdot 10^{-200}\right):\\
\;\;\;\;x + \frac{y - z}{a - z} \cdot \frac{\sqrt[3]{1}}{\frac{1}{t - x}}\\

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

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r114340 = x;
        double r114341 = y;
        double r114342 = z;
        double r114343 = r114341 - r114342;
        double r114344 = t;
        double r114345 = r114344 - r114340;
        double r114346 = a;
        double r114347 = r114346 - r114342;
        double r114348 = r114345 / r114347;
        double r114349 = r114343 * r114348;
        double r114350 = r114340 + r114349;
        return r114350;
}

double f(double x, double y, double z, double t, double a) {
        double r114351 = a;
        double r114352 = -2.8613728432926933e-131;
        bool r114353 = r114351 <= r114352;
        double r114354 = 6.607165126286426e-200;
        bool r114355 = r114351 <= r114354;
        double r114356 = !r114355;
        bool r114357 = r114353 || r114356;
        double r114358 = x;
        double r114359 = y;
        double r114360 = z;
        double r114361 = r114359 - r114360;
        double r114362 = r114351 - r114360;
        double r114363 = r114361 / r114362;
        double r114364 = 1.0;
        double r114365 = cbrt(r114364);
        double r114366 = t;
        double r114367 = r114366 - r114358;
        double r114368 = r114364 / r114367;
        double r114369 = r114365 / r114368;
        double r114370 = r114363 * r114369;
        double r114371 = r114358 + r114370;
        double r114372 = r114358 * r114359;
        double r114373 = r114372 / r114360;
        double r114374 = r114373 + r114366;
        double r114375 = r114366 * r114359;
        double r114376 = r114375 / r114360;
        double r114377 = r114374 - r114376;
        double r114378 = r114357 ? r114371 : r114377;
        return r114378;
}

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 2 regimes
  2. if a < -2.8613728432926933e-131 or 6.607165126286426e-200 < a

    1. Initial program 12.5

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

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

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

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

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

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

      \[\leadsto x + \color{blue}{\frac{y - z}{a - z}} \cdot \frac{\sqrt[3]{1}}{\frac{1}{t - x}}\]

    if -2.8613728432926933e-131 < a < 6.607165126286426e-200

    1. Initial program 23.7

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le -2.86137284329269328 \cdot 10^{-131} \lor \neg \left(a \le 6.6071651262864259 \cdot 10^{-200}\right):\\ \;\;\;\;x + \frac{y - z}{a - z} \cdot \frac{\sqrt[3]{1}}{\frac{1}{t - x}}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\ \end{array}\]

Reproduce

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