Average Error: 24.1 → 8.9
Time: 54.5s
Precision: 64
\[x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}\]
\[\begin{array}{l} \mathbf{if}\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \le -2.579613563212042932975206509009832764606 \cdot 10^{-257}:\\ \;\;\;\;x + \frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{\sqrt[3]{a - z}} \cdot \sqrt[3]{a - z}} \cdot \left(\frac{\sqrt[3]{y - z}}{\sqrt[3]{\sqrt[3]{a - z}} \cdot \left(\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \sqrt[3]{\sqrt[3]{a - z}}\right)} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}}\right)\\ \mathbf{elif}\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \le 0.0:\\ \;\;\;\;\left(t + \frac{x \cdot y}{z}\right) - \frac{t \cdot y}{z}\\ \mathbf{else}:\\ \;\;\;\;x + \frac{y - z}{\left(\sqrt[3]{\sqrt[3]{a - z}} \cdot \sqrt[3]{a - z}\right) \cdot \left(\sqrt[3]{\sqrt[3]{a - z}} \cdot \sqrt[3]{a - z}\right)} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}}\\ \end{array}\]
x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z}
\begin{array}{l}
\mathbf{if}\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \le -2.579613563212042932975206509009832764606 \cdot 10^{-257}:\\
\;\;\;\;x + \frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{\sqrt[3]{a - z}} \cdot \sqrt[3]{a - z}} \cdot \left(\frac{\sqrt[3]{y - z}}{\sqrt[3]{\sqrt[3]{a - z}} \cdot \left(\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \sqrt[3]{\sqrt[3]{a - z}}\right)} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}}\right)\\

\mathbf{elif}\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \le 0.0:\\
\;\;\;\;\left(t + \frac{x \cdot y}{z}\right) - \frac{t \cdot y}{z}\\

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

\end{array}
double f(double x, double y, double z, double t, double a) {
        double r107864011 = x;
        double r107864012 = y;
        double r107864013 = z;
        double r107864014 = r107864012 - r107864013;
        double r107864015 = t;
        double r107864016 = r107864015 - r107864011;
        double r107864017 = r107864014 * r107864016;
        double r107864018 = a;
        double r107864019 = r107864018 - r107864013;
        double r107864020 = r107864017 / r107864019;
        double r107864021 = r107864011 + r107864020;
        return r107864021;
}

double f(double x, double y, double z, double t, double a) {
        double r107864022 = x;
        double r107864023 = y;
        double r107864024 = z;
        double r107864025 = r107864023 - r107864024;
        double r107864026 = t;
        double r107864027 = r107864026 - r107864022;
        double r107864028 = r107864025 * r107864027;
        double r107864029 = a;
        double r107864030 = r107864029 - r107864024;
        double r107864031 = r107864028 / r107864030;
        double r107864032 = r107864022 + r107864031;
        double r107864033 = -2.579613563212043e-257;
        bool r107864034 = r107864032 <= r107864033;
        double r107864035 = cbrt(r107864025);
        double r107864036 = r107864035 * r107864035;
        double r107864037 = cbrt(r107864030);
        double r107864038 = cbrt(r107864037);
        double r107864039 = r107864038 * r107864037;
        double r107864040 = r107864036 / r107864039;
        double r107864041 = r107864037 * r107864037;
        double r107864042 = cbrt(r107864041);
        double r107864043 = r107864042 * r107864038;
        double r107864044 = r107864038 * r107864043;
        double r107864045 = r107864035 / r107864044;
        double r107864046 = r107864027 / r107864038;
        double r107864047 = r107864045 * r107864046;
        double r107864048 = r107864040 * r107864047;
        double r107864049 = r107864022 + r107864048;
        double r107864050 = 0.0;
        bool r107864051 = r107864032 <= r107864050;
        double r107864052 = r107864022 * r107864023;
        double r107864053 = r107864052 / r107864024;
        double r107864054 = r107864026 + r107864053;
        double r107864055 = r107864026 * r107864023;
        double r107864056 = r107864055 / r107864024;
        double r107864057 = r107864054 - r107864056;
        double r107864058 = r107864039 * r107864039;
        double r107864059 = r107864025 / r107864058;
        double r107864060 = r107864059 * r107864046;
        double r107864061 = r107864022 + r107864060;
        double r107864062 = r107864051 ? r107864057 : r107864061;
        double r107864063 = r107864034 ? r107864049 : r107864062;
        return r107864063;
}

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.1
Target12.1
Herbie8.9
\[\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 3 regimes
  2. if (+ x (/ (* (- y z) (- t x)) (- a z))) < -2.579613563212043e-257

    1. Initial program 21.2

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

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

      \[\leadsto x + \color{blue}{\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt8.2

      \[\leadsto x + \frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{t - x}{\color{blue}{\left(\sqrt[3]{\sqrt[3]{a - z}} \cdot \sqrt[3]{\sqrt[3]{a - z}}\right) \cdot \sqrt[3]{\sqrt[3]{a - z}}}}\]
    7. Applied *-un-lft-identity8.2

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

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

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

      \[\leadsto x + \color{blue}{\frac{y - z}{\left(\sqrt[3]{\sqrt[3]{a - z}} \cdot \sqrt[3]{a - z}\right) \cdot \left(\sqrt[3]{\sqrt[3]{a - z}} \cdot \sqrt[3]{a - z}\right)}} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}}\]
    11. Using strategy rm
    12. Applied add-cube-cbrt8.2

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

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

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

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

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

    if -2.579613563212043e-257 < (+ x (/ (* (- y z) (- t x)) (- a z))) < 0.0

    1. Initial program 57.1

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

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

    if 0.0 < (+ x (/ (* (- y z) (- t x)) (- a z)))

    1. Initial program 20.6

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

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

      \[\leadsto x + \color{blue}{\frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{t - x}{\sqrt[3]{a - z}}}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt7.9

      \[\leadsto x + \frac{y - z}{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \frac{t - x}{\color{blue}{\left(\sqrt[3]{\sqrt[3]{a - z}} \cdot \sqrt[3]{\sqrt[3]{a - z}}\right) \cdot \sqrt[3]{\sqrt[3]{a - z}}}}\]
    7. Applied *-un-lft-identity7.9

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \le -2.579613563212042932975206509009832764606 \cdot 10^{-257}:\\ \;\;\;\;x + \frac{\sqrt[3]{y - z} \cdot \sqrt[3]{y - z}}{\sqrt[3]{\sqrt[3]{a - z}} \cdot \sqrt[3]{a - z}} \cdot \left(\frac{\sqrt[3]{y - z}}{\sqrt[3]{\sqrt[3]{a - z}} \cdot \left(\sqrt[3]{\sqrt[3]{a - z} \cdot \sqrt[3]{a - z}} \cdot \sqrt[3]{\sqrt[3]{a - z}}\right)} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}}\right)\\ \mathbf{elif}\;x + \frac{\left(y - z\right) \cdot \left(t - x\right)}{a - z} \le 0.0:\\ \;\;\;\;\left(t + \frac{x \cdot y}{z}\right) - \frac{t \cdot y}{z}\\ \mathbf{else}:\\ \;\;\;\;x + \frac{y - z}{\left(\sqrt[3]{\sqrt[3]{a - z}} \cdot \sqrt[3]{a - z}\right) \cdot \left(\sqrt[3]{\sqrt[3]{a - z}} \cdot \sqrt[3]{a - z}\right)} \cdot \frac{t - x}{\sqrt[3]{\sqrt[3]{a - z}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019173 
(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))))