Average Error: 14.7 → 20.8
Time: 13.5s
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 \frac{-4715917056616029}{1.219433027467184465383436417887955588183 \cdot 10^{142}} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0\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 \frac{-4715917056616029}{1.219433027467184465383436417887955588183 \cdot 10^{142}} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0\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 r91533 = x;
        double r91534 = y;
        double r91535 = z;
        double r91536 = r91534 - r91535;
        double r91537 = t;
        double r91538 = r91537 - r91533;
        double r91539 = a;
        double r91540 = r91539 - r91535;
        double r91541 = r91538 / r91540;
        double r91542 = r91536 * r91541;
        double r91543 = r91533 + r91542;
        return r91543;
}

double f(double x, double y, double z, double t, double a) {
        double r91544 = x;
        double r91545 = y;
        double r91546 = z;
        double r91547 = r91545 - r91546;
        double r91548 = t;
        double r91549 = r91548 - r91544;
        double r91550 = a;
        double r91551 = r91550 - r91546;
        double r91552 = r91549 / r91551;
        double r91553 = r91547 * r91552;
        double r91554 = r91544 + r91553;
        double r91555 = -4715917056616029.0;
        double r91556 = 1.2194330274671845e+142;
        double r91557 = r91555 / r91556;
        bool r91558 = r91554 <= r91557;
        double r91559 = 0.0;
        bool r91560 = r91554 <= r91559;
        double r91561 = !r91560;
        bool r91562 = r91558 || r91561;
        double r91563 = r91547 * r91549;
        double r91564 = r91563 / r91551;
        double r91565 = r91544 + r91564;
        double r91566 = r91544 * r91545;
        double r91567 = r91566 / r91546;
        double r91568 = r91567 + r91548;
        double r91569 = r91548 * r91545;
        double r91570 = r91569 / r91546;
        double r91571 = r91568 - r91570;
        double r91572 = r91562 ? r91565 : r91571;
        return r91572;
}

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. Taylor expanded around inf 28.8

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

    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 associate-*r/5.8

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le \frac{-4715917056616029}{1.219433027467184465383436417887955588183 \cdot 10^{142}} \lor \neg \left(x + \left(y - z\right) \cdot \frac{t - x}{a - z} \le 0.0\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 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)))))