Average Error: 14.9 → 11.1
Time: 22.2s
Precision: 64
\[x + \left(y - z\right) \cdot \frac{t - x}{a - z}\]
\[\begin{array}{l} \mathbf{if}\;a \le -6.143232131925929682871142551410290774749 \cdot 10^{-28} \lor \neg \left(a \le 4.324311520218842582736217138705122405131 \cdot 10^{-174}\right):\\ \;\;\;\;x + \left(\left(\left(y - z\right) \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}}\right) \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}}\right) \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, t - \frac{t \cdot y}{z}\right)\\ \end{array}\]
x + \left(y - z\right) \cdot \frac{t - x}{a - z}
\begin{array}{l}
\mathbf{if}\;a \le -6.143232131925929682871142551410290774749 \cdot 10^{-28} \lor \neg \left(a \le 4.324311520218842582736217138705122405131 \cdot 10^{-174}\right):\\
\;\;\;\;x + \left(\left(\left(y - z\right) \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}}\right) \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}}\right) \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}}\\

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

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r155292 = x;
        double r155293 = y;
        double r155294 = z;
        double r155295 = r155293 - r155294;
        double r155296 = t;
        double r155297 = r155296 - r155292;
        double r155298 = a;
        double r155299 = r155298 - r155294;
        double r155300 = r155297 / r155299;
        double r155301 = r155295 * r155300;
        double r155302 = r155292 + r155301;
        return r155302;
}

double f(double x, double y, double z, double t, double a) {
        double r155303 = a;
        double r155304 = -6.14323213192593e-28;
        bool r155305 = r155303 <= r155304;
        double r155306 = 4.324311520218843e-174;
        bool r155307 = r155303 <= r155306;
        double r155308 = !r155307;
        bool r155309 = r155305 || r155308;
        double r155310 = x;
        double r155311 = y;
        double r155312 = z;
        double r155313 = r155311 - r155312;
        double r155314 = t;
        double r155315 = r155314 - r155310;
        double r155316 = cbrt(r155315);
        double r155317 = r155303 - r155312;
        double r155318 = cbrt(r155317);
        double r155319 = r155316 / r155318;
        double r155320 = r155313 * r155319;
        double r155321 = r155320 * r155319;
        double r155322 = r155321 * r155319;
        double r155323 = r155310 + r155322;
        double r155324 = r155310 / r155312;
        double r155325 = r155314 * r155311;
        double r155326 = r155325 / r155312;
        double r155327 = r155314 - r155326;
        double r155328 = fma(r155324, r155311, r155327);
        double r155329 = r155309 ? r155323 : r155328;
        return r155329;
}

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 a < -6.14323213192593e-28 or 4.324311520218843e-174 < a

    1. Initial program 10.9

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

      \[\leadsto x + \left(y - z\right) \cdot \frac{t - x}{\color{blue}{\left(\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}\right) \cdot \sqrt[3]{a - z}}}\]
    4. Applied add-cube-cbrt11.6

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

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

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

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

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

    if -6.14323213192593e-28 < a < 4.324311520218843e-174

    1. Initial program 24.3

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;a \le -6.143232131925929682871142551410290774749 \cdot 10^{-28} \lor \neg \left(a \le 4.324311520218842582736217138705122405131 \cdot 10^{-174}\right):\\ \;\;\;\;x + \left(\left(\left(y - z\right) \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}}\right) \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}}\right) \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{x}{z}, y, t - \frac{t \cdot y}{z}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019325 +o rules:numerics
(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)))))