Average Error: 15.6 → 19.2
Time: 20.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 -2.987849100227200098981601290036999824698 \cdot 10^{115} \lor \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -2.497041979016212756171192164133352171743 \cdot 10^{-308} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 7.78731788031149956723511658898853039127 \cdot 10^{-291}\right)\right):\\ \;\;\;\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\\ \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}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -2.987849100227200098981601290036999824698 \cdot 10^{115} \lor \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -2.497041979016212756171192164133352171743 \cdot 10^{-308} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 7.78731788031149956723511658898853039127 \cdot 10^{-291}\right)\right):\\
\;\;\;\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\\

\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 r105710 = x;
        double r105711 = y;
        double r105712 = z;
        double r105713 = r105711 - r105712;
        double r105714 = t;
        double r105715 = r105714 - r105710;
        double r105716 = a;
        double r105717 = r105716 - r105712;
        double r105718 = r105715 / r105717;
        double r105719 = r105713 * r105718;
        double r105720 = r105710 + r105719;
        return r105720;
}

double f(double x, double y, double z, double t, double a) {
        double r105721 = x;
        double r105722 = y;
        double r105723 = z;
        double r105724 = r105722 - r105723;
        double r105725 = t;
        double r105726 = r105725 - r105721;
        double r105727 = a;
        double r105728 = r105727 - r105723;
        double r105729 = r105726 / r105728;
        double r105730 = r105724 * r105729;
        double r105731 = r105721 + r105730;
        double r105732 = -2.9878491002272e+115;
        bool r105733 = r105731 <= r105732;
        double r105734 = -2.497041979016213e-308;
        bool r105735 = r105731 <= r105734;
        double r105736 = 7.7873178803115e-291;
        bool r105737 = r105731 <= r105736;
        double r105738 = !r105737;
        bool r105739 = r105735 || r105738;
        bool r105740 = r105733 || r105739;
        double r105741 = r105724 * r105726;
        double r105742 = r105741 / r105728;
        double r105743 = r105721 + r105742;
        double r105744 = r105721 * r105722;
        double r105745 = r105744 / r105723;
        double r105746 = r105745 + r105725;
        double r105747 = r105725 * r105722;
        double r105748 = r105747 / r105723;
        double r105749 = r105746 - r105748;
        double r105750 = r105740 ? r105743 : r105749;
        return r105750;
}

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)))) < -2.9878491002272e+115 or 7.7873178803115e-291 < (+ x (* (- y z) (/ (- t x) (- a z))))

    1. Initial program 7.5

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

    if -2.9878491002272e+115 < (+ x (* (- y z) (/ (- t x) (- a z)))) < -2.497041979016213e-308

    1. Initial program 8.4

      \[x + \left(y - z\right) \cdot \frac{t - x}{a - z}\]
    2. Using strategy rm
    3. Applied associate-*r/6.6

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

    if -2.497041979016213e-308 < (+ x (* (- y z) (/ (- t x) (- a z)))) < 7.7873178803115e-291

    1. Initial program 61.3

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -2.987849100227200098981601290036999824698 \cdot 10^{115} \lor \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le -2.497041979016212756171192164133352171743 \cdot 10^{-308} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 7.78731788031149956723511658898853039127 \cdot 10^{-291}\right)\right):\\ \;\;\;\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{x \cdot y}{z} + t\right) - \frac{t \cdot y}{z}\\ \end{array}\]

Reproduce

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