Average Error: 14.7 → 11.0
Time: 20.7s
Precision: 64
\[x + \left(y - z\right) \cdot \frac{t - x}{a - z}\]
\[\begin{array}{l} \mathbf{if}\;z \le -5.803426678630030535334652634557233676058 \cdot 10^{240}:\\ \;\;\;\;\left(t + \frac{x \cdot y}{z}\right) - \frac{t}{z} \cdot y\\ \mathbf{elif}\;z \le -2.411587565692804897575894344515356329807 \cdot 10^{-52}:\\ \;\;\;\;x + \left(\left(t - x\right) \cdot \frac{1}{a - z}\right) \cdot \left(y - z\right)\\ \mathbf{elif}\;z \le 2.628588462703719811957819335846933965946 \cdot 10^{201}:\\ \;\;\;\;\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}} + x\\ \mathbf{else}:\\ \;\;\;\;\left(t - \frac{t}{\frac{z}{y}}\right) + \frac{x}{z} \cdot y\\ \end{array}\]
x + \left(y - z\right) \cdot \frac{t - x}{a - z}
\begin{array}{l}
\mathbf{if}\;z \le -5.803426678630030535334652634557233676058 \cdot 10^{240}:\\
\;\;\;\;\left(t + \frac{x \cdot y}{z}\right) - \frac{t}{z} \cdot y\\

\mathbf{elif}\;z \le -2.411587565692804897575894344515356329807 \cdot 10^{-52}:\\
\;\;\;\;x + \left(\left(t - x\right) \cdot \frac{1}{a - z}\right) \cdot \left(y - z\right)\\

\mathbf{elif}\;z \le 2.628588462703719811957819335846933965946 \cdot 10^{201}:\\
\;\;\;\;\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}} + x\\

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

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r105630 = x;
        double r105631 = y;
        double r105632 = z;
        double r105633 = r105631 - r105632;
        double r105634 = t;
        double r105635 = r105634 - r105630;
        double r105636 = a;
        double r105637 = r105636 - r105632;
        double r105638 = r105635 / r105637;
        double r105639 = r105633 * r105638;
        double r105640 = r105630 + r105639;
        return r105640;
}

double f(double x, double y, double z, double t, double a) {
        double r105641 = z;
        double r105642 = -5.8034266786300305e+240;
        bool r105643 = r105641 <= r105642;
        double r105644 = t;
        double r105645 = x;
        double r105646 = y;
        double r105647 = r105645 * r105646;
        double r105648 = r105647 / r105641;
        double r105649 = r105644 + r105648;
        double r105650 = r105644 / r105641;
        double r105651 = r105650 * r105646;
        double r105652 = r105649 - r105651;
        double r105653 = -2.411587565692805e-52;
        bool r105654 = r105641 <= r105653;
        double r105655 = r105644 - r105645;
        double r105656 = 1.0;
        double r105657 = a;
        double r105658 = r105657 - r105641;
        double r105659 = r105656 / r105658;
        double r105660 = r105655 * r105659;
        double r105661 = r105646 - r105641;
        double r105662 = r105660 * r105661;
        double r105663 = r105645 + r105662;
        double r105664 = 2.62858846270372e+201;
        bool r105665 = r105641 <= r105664;
        double r105666 = cbrt(r105658);
        double r105667 = r105666 * r105666;
        double r105668 = r105661 / r105667;
        double r105669 = r105655 / r105666;
        double r105670 = r105668 * r105669;
        double r105671 = r105670 + r105645;
        double r105672 = r105641 / r105646;
        double r105673 = r105644 / r105672;
        double r105674 = r105644 - r105673;
        double r105675 = r105645 / r105641;
        double r105676 = r105675 * r105646;
        double r105677 = r105674 + r105676;
        double r105678 = r105665 ? r105671 : r105677;
        double r105679 = r105654 ? r105663 : r105678;
        double r105680 = r105643 ? r105652 : r105679;
        return r105680;
}

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 4 regimes
  2. if z < -5.8034266786300305e+240

    1. Initial program 31.9

      \[x + \left(y - z\right) \cdot \frac{t - x}{a - z}\]
    2. Using strategy rm
    3. Applied add-cube-cbrt32.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-cbrt32.5

      \[\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-frac32.5

      \[\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*28.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. Simplified28.3

      \[\leadsto x + \color{blue}{\frac{y - z}{\frac{\sqrt[3]{a - z}}{\sqrt[3]{t - x}} \cdot \frac{\sqrt[3]{a - z}}{\sqrt[3]{t - x}}}} \cdot \frac{\sqrt[3]{t - x}}{\sqrt[3]{a - z}}\]
    8. Taylor expanded around inf 23.5

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

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

    if -5.8034266786300305e+240 < z < -2.411587565692805e-52

    1. Initial program 15.8

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

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

    if -2.411587565692805e-52 < z < 2.62858846270372e+201

    1. Initial program 9.3

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

      \[\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 *-un-lft-identity9.8

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

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

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

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

    if 2.62858846270372e+201 < z

    1. Initial program 32.0

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

      \[\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 22.9

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -5.803426678630030535334652634557233676058 \cdot 10^{240}:\\ \;\;\;\;\left(t + \frac{x \cdot y}{z}\right) - \frac{t}{z} \cdot y\\ \mathbf{elif}\;z \le -2.411587565692804897575894344515356329807 \cdot 10^{-52}:\\ \;\;\;\;x + \left(\left(t - x\right) \cdot \frac{1}{a - z}\right) \cdot \left(y - z\right)\\ \mathbf{elif}\;z \le 2.628588462703719811957819335846933965946 \cdot 10^{201}:\\ \;\;\;\;\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}} + x\\ \mathbf{else}:\\ \;\;\;\;\left(t - \frac{t}{\frac{z}{y}}\right) + \frac{x}{z} \cdot y\\ \end{array}\]

Reproduce

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