Average Error: 24.4 → 10.1
Time: 21.2s
Precision: 64
\[x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\]
\[\begin{array}{l} \mathbf{if}\;z \le -4.197578146861638602955077028325016765581 \cdot 10^{197} \lor \neg \left(z \le 2.310700863718049801732465226256542133237 \cdot 10^{203}\right):\\ \;\;\;\;t + \left(\frac{x}{\frac{z}{y}} - \frac{t}{\frac{z}{y}}\right)\\ \mathbf{else}:\\ \;\;\;\;x + \left(\left(\sqrt[3]{\frac{y - z}{a - z}} \cdot \sqrt[3]{\frac{y - z}{a - z}}\right) \cdot \sqrt[3]{\frac{y - z}{a - z}}\right) \cdot \left(t - x\right)\\ \end{array}\]
x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}
\begin{array}{l}
\mathbf{if}\;z \le -4.197578146861638602955077028325016765581 \cdot 10^{197} \lor \neg \left(z \le 2.310700863718049801732465226256542133237 \cdot 10^{203}\right):\\
\;\;\;\;t + \left(\frac{x}{\frac{z}{y}} - \frac{t}{\frac{z}{y}}\right)\\

\mathbf{else}:\\
\;\;\;\;x + \left(\left(\sqrt[3]{\frac{y - z}{a - z}} \cdot \sqrt[3]{\frac{y - z}{a - z}}\right) \cdot \sqrt[3]{\frac{y - z}{a - z}}\right) \cdot \left(t - x\right)\\

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r581101 = x;
        double r581102 = y;
        double r581103 = z;
        double r581104 = r581102 - r581103;
        double r581105 = t;
        double r581106 = r581105 - r581101;
        double r581107 = r581104 * r581106;
        double r581108 = a;
        double r581109 = r581108 - r581103;
        double r581110 = r581107 / r581109;
        double r581111 = r581101 + r581110;
        return r581111;
}

double f(double x, double y, double z, double t, double a) {
        double r581112 = z;
        double r581113 = -4.1975781468616386e+197;
        bool r581114 = r581112 <= r581113;
        double r581115 = 2.3107008637180498e+203;
        bool r581116 = r581112 <= r581115;
        double r581117 = !r581116;
        bool r581118 = r581114 || r581117;
        double r581119 = t;
        double r581120 = x;
        double r581121 = y;
        double r581122 = r581112 / r581121;
        double r581123 = r581120 / r581122;
        double r581124 = r581119 / r581122;
        double r581125 = r581123 - r581124;
        double r581126 = r581119 + r581125;
        double r581127 = r581121 - r581112;
        double r581128 = a;
        double r581129 = r581128 - r581112;
        double r581130 = r581127 / r581129;
        double r581131 = cbrt(r581130);
        double r581132 = r581131 * r581131;
        double r581133 = r581132 * r581131;
        double r581134 = r581119 - r581120;
        double r581135 = r581133 * r581134;
        double r581136 = r581120 + r581135;
        double r581137 = r581118 ? r581126 : r581136;
        return r581137;
}

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

Target

Original24.4
Target12.2
Herbie10.1
\[\begin{array}{l} \mathbf{if}\;z \lt -1.253613105609503593846459977496550767343 \cdot 10^{188}:\\ \;\;\;\;t - \frac{y}{z} \cdot \left(t - x\right)\\ \mathbf{elif}\;z \lt 4.446702369113811028051510715777703865332 \cdot 10^{64}:\\ \;\;\;\;x + \frac{y - z}{\frac{a - z}{t - x}}\\ \mathbf{else}:\\ \;\;\;\;t - \frac{y}{z} \cdot \left(t - x\right)\\ \end{array}\]

Derivation

  1. Split input into 2 regimes
  2. if z < -4.1975781468616386e+197 or 2.3107008637180498e+203 < z

    1. Initial program 49.6

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

      \[\leadsto \color{blue}{x + \frac{y - z}{a - z} \cdot \left(t - x\right)}\]
    3. Using strategy rm
    4. Applied div-inv24.6

      \[\leadsto x + \color{blue}{\left(\left(y - z\right) \cdot \frac{1}{a - z}\right)} \cdot \left(t - x\right)\]
    5. Taylor expanded around inf 24.3

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

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

    if -4.1975781468616386e+197 < z < 2.3107008637180498e+203

    1. Initial program 18.0

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

      \[\leadsto \color{blue}{x + \frac{y - z}{a - z} \cdot \left(t - x\right)}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt9.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;z \le -4.197578146861638602955077028325016765581 \cdot 10^{197} \lor \neg \left(z \le 2.310700863718049801732465226256542133237 \cdot 10^{203}\right):\\ \;\;\;\;t + \left(\frac{x}{\frac{z}{y}} - \frac{t}{\frac{z}{y}}\right)\\ \mathbf{else}:\\ \;\;\;\;x + \left(\left(\sqrt[3]{\frac{y - z}{a - z}} \cdot \sqrt[3]{\frac{y - z}{a - z}}\right) \cdot \sqrt[3]{\frac{y - z}{a - z}}\right) \cdot \left(t - x\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019194 
(FPCore (x y z t a)
  :name "Graphics.Rendering.Chart.Axis.Types:invLinMap from Chart-1.5.3"

  :herbie-target
  (if (< z -1.2536131056095036e+188) (- t (* (/ y z) (- t x))) (if (< z 4.446702369113811e+64) (+ x (/ (- y z) (/ (- a z) (- t x)))) (- t (* (/ y z) (- t x)))))

  (+ x (/ (* (- y z) (- t x)) (- a z))))