Average Error: 14.6 → 14.2
Time: 25.0s
Precision: 64
\[x + \left(y - z\right) \cdot \frac{t - x}{a - z}\]
\[\begin{array}{l} \mathbf{if}\;z \le -6.05591506376188087 \cdot 10^{178}:\\ \;\;\;\;t\\ \mathbf{elif}\;z \le 9.48753521906097374 \cdot 10^{188}:\\ \;\;\;\;\mathsf{fma}\left(\frac{t}{a - z} - \frac{\frac{x}{\left(\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \sqrt[3]{\sqrt[3]{a - z}}\right) \cdot \sqrt[3]{a - z}}}{\sqrt[3]{a - z}}, y - z, x\right)\\ \mathbf{else}:\\ \;\;\;\;t\\ \end{array}\]
x + \left(y - z\right) \cdot \frac{t - x}{a - z}
\begin{array}{l}
\mathbf{if}\;z \le -6.05591506376188087 \cdot 10^{178}:\\
\;\;\;\;t\\

\mathbf{elif}\;z \le 9.48753521906097374 \cdot 10^{188}:\\
\;\;\;\;\mathsf{fma}\left(\frac{t}{a - z} - \frac{\frac{x}{\left(\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \sqrt[3]{\sqrt[3]{a - z}}\right) \cdot \sqrt[3]{a - z}}}{\sqrt[3]{a - z}}, y - z, x\right)\\

\mathbf{else}:\\
\;\;\;\;t\\

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r105216 = x;
        double r105217 = y;
        double r105218 = z;
        double r105219 = r105217 - r105218;
        double r105220 = t;
        double r105221 = r105220 - r105216;
        double r105222 = a;
        double r105223 = r105222 - r105218;
        double r105224 = r105221 / r105223;
        double r105225 = r105219 * r105224;
        double r105226 = r105216 + r105225;
        return r105226;
}

double f(double x, double y, double z, double t, double a) {
        double r105227 = z;
        double r105228 = -6.055915063761881e+178;
        bool r105229 = r105227 <= r105228;
        double r105230 = t;
        double r105231 = 9.487535219060974e+188;
        bool r105232 = r105227 <= r105231;
        double r105233 = a;
        double r105234 = r105233 - r105227;
        double r105235 = r105230 / r105234;
        double r105236 = x;
        double r105237 = cbrt(r105234);
        double r105238 = r105237 * r105237;
        double r105239 = cbrt(r105238);
        double r105240 = cbrt(r105237);
        double r105241 = r105239 * r105240;
        double r105242 = r105241 * r105237;
        double r105243 = r105236 / r105242;
        double r105244 = r105243 / r105237;
        double r105245 = r105235 - r105244;
        double r105246 = y;
        double r105247 = r105246 - r105227;
        double r105248 = fma(r105245, r105247, r105236);
        double r105249 = r105232 ? r105248 : r105230;
        double r105250 = r105229 ? r105230 : r105249;
        return r105250;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Bits error versus a

Derivation

  1. Split input into 2 regimes
  2. if z < -6.055915063761881e+178 or 9.487535219060974e+188 < z

    1. Initial program 28.7

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

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{t - x}{a - z}, y - z, x\right)}\]
    3. Taylor expanded around 0 26.4

      \[\leadsto \color{blue}{t}\]

    if -6.055915063761881e+178 < z < 9.487535219060974e+188

    1. Initial program 10.5

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

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{t - x}{a - z}, y - z, x\right)}\]
    3. Using strategy rm
    4. Applied div-sub10.5

      \[\leadsto \mathsf{fma}\left(\color{blue}{\frac{t}{a - z} - \frac{x}{a - z}}, y - z, x\right)\]
    5. Using strategy rm
    6. Applied add-cube-cbrt10.7

      \[\leadsto \mathsf{fma}\left(\frac{t}{a - z} - \frac{x}{\color{blue}{\left(\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}\right) \cdot \sqrt[3]{a - z}}}, y - z, x\right)\]
    7. Applied associate-/r*10.7

      \[\leadsto \mathsf{fma}\left(\frac{t}{a - z} - \color{blue}{\frac{\frac{x}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}}}{\sqrt[3]{a - z}}}, y - z, x\right)\]
    8. Using strategy rm
    9. Applied add-cube-cbrt10.7

      \[\leadsto \mathsf{fma}\left(\frac{t}{a - z} - \frac{\frac{x}{\sqrt[3]{\color{blue}{\left(\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}\right) \cdot \sqrt[3]{a - z}}} \cdot \sqrt[3]{a - z}}}{\sqrt[3]{a - z}}, y - z, x\right)\]
    10. Applied cbrt-prod10.7

      \[\leadsto \mathsf{fma}\left(\frac{t}{a - z} - \frac{\frac{x}{\color{blue}{\left(\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \sqrt[3]{\sqrt[3]{a - z}}\right)} \cdot \sqrt[3]{a - z}}}{\sqrt[3]{a - z}}, y - z, x\right)\]
  3. Recombined 2 regimes into one program.
  4. Final simplification14.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -6.05591506376188087 \cdot 10^{178}:\\ \;\;\;\;t\\ \mathbf{elif}\;z \le 9.48753521906097374 \cdot 10^{188}:\\ \;\;\;\;\mathsf{fma}\left(\frac{t}{a - z} - \frac{\frac{x}{\left(\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \sqrt[3]{\sqrt[3]{a - z}}\right) \cdot \sqrt[3]{a - z}}}{\sqrt[3]{a - z}}, y - z, x\right)\\ \mathbf{else}:\\ \;\;\;\;t\\ \end{array}\]

Reproduce

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