Average Error: 15.1 → 10.3
Time: 20.9s
Precision: 64
\[x + \left(y - z\right) \cdot \frac{t - x}{a - z}\]
\[\begin{array}{l} \mathbf{if}\;a \le -2.303115495338194376941539756876286948596 \cdot 10^{-89} \lor \neg \left(a \le 6.19612134490168677632492064554512179888 \cdot 10^{-233}\right):\\ \;\;\;\;x + \left(t - x\right) \cdot \frac{y - z}{a - z}\\ \mathbf{else}:\\ \;\;\;\;\left(t + \frac{y}{\frac{z}{x}}\right) - \frac{y}{\frac{z}{t}}\\ \end{array}\]
x + \left(y - z\right) \cdot \frac{t - x}{a - z}
\begin{array}{l}
\mathbf{if}\;a \le -2.303115495338194376941539756876286948596 \cdot 10^{-89} \lor \neg \left(a \le 6.19612134490168677632492064554512179888 \cdot 10^{-233}\right):\\
\;\;\;\;x + \left(t - x\right) \cdot \frac{y - z}{a - z}\\

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

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r96510 = x;
        double r96511 = y;
        double r96512 = z;
        double r96513 = r96511 - r96512;
        double r96514 = t;
        double r96515 = r96514 - r96510;
        double r96516 = a;
        double r96517 = r96516 - r96512;
        double r96518 = r96515 / r96517;
        double r96519 = r96513 * r96518;
        double r96520 = r96510 + r96519;
        return r96520;
}

double f(double x, double y, double z, double t, double a) {
        double r96521 = a;
        double r96522 = -2.3031154953381944e-89;
        bool r96523 = r96521 <= r96522;
        double r96524 = 6.196121344901687e-233;
        bool r96525 = r96521 <= r96524;
        double r96526 = !r96525;
        bool r96527 = r96523 || r96526;
        double r96528 = x;
        double r96529 = t;
        double r96530 = r96529 - r96528;
        double r96531 = y;
        double r96532 = z;
        double r96533 = r96531 - r96532;
        double r96534 = r96521 - r96532;
        double r96535 = r96533 / r96534;
        double r96536 = r96530 * r96535;
        double r96537 = r96528 + r96536;
        double r96538 = r96532 / r96528;
        double r96539 = r96531 / r96538;
        double r96540 = r96529 + r96539;
        double r96541 = r96532 / r96529;
        double r96542 = r96531 / r96541;
        double r96543 = r96540 - r96542;
        double r96544 = r96527 ? r96537 : r96543;
        return r96544;
}

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.3031154953381944e-89 or 6.196121344901687e-233 < a

    1. Initial program 12.2

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

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

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

      \[\leadsto x + \left(y - z\right) \cdot \left(\color{blue}{{\left(t - x\right)}^{1}} \cdot {\left(\frac{1}{a - z}\right)}^{1}\right)\]
    7. Applied pow-prod-down12.3

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

      \[\leadsto x + \color{blue}{{\left(y - z\right)}^{1}} \cdot {\left(\left(t - x\right) \cdot \frac{1}{a - z}\right)}^{1}\]
    9. Applied pow-prod-down12.3

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

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

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

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

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

    if -2.3031154953381944e-89 < a < 6.196121344901687e-233

    1. Initial program 25.3

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

      \[\leadsto x + \left(y - z\right) \cdot \color{blue}{\left(\left(t - x\right) \cdot \frac{1}{a - z}\right)}\]
    4. Taylor expanded around inf 15.8

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le -2.303115495338194376941539756876286948596 \cdot 10^{-89} \lor \neg \left(a \le 6.19612134490168677632492064554512179888 \cdot 10^{-233}\right):\\ \;\;\;\;x + \left(t - x\right) \cdot \frac{y - z}{a - z}\\ \mathbf{else}:\\ \;\;\;\;\left(t + \frac{y}{\frac{z}{x}}\right) - \frac{y}{\frac{z}{t}}\\ \end{array}\]

Reproduce

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