Average Error: 6.4 → 1.8
Time: 24.1s
Precision: 64
\[x + \frac{y \cdot \left(z - x\right)}{t}\]
\[\begin{array}{l} \mathbf{if}\;t \le -4.024110690636155670064376141757827793703 \cdot 10^{-54}:\\ \;\;\;\;x + y \cdot \left(\frac{z}{t} - \frac{x}{t}\right)\\ \mathbf{elif}\;t \le 4.482541642658298470975327978871003617787 \cdot 10^{-266}:\\ \;\;\;\;x + \frac{1}{\frac{t}{y \cdot \left(z - x\right)}}\\ \mathbf{else}:\\ \;\;\;\;x + \frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{t}} \cdot \left(\frac{\sqrt[3]{y}}{\sqrt[3]{t}} \cdot \frac{z - x}{\sqrt[3]{t}}\right)\\ \end{array}\]
x + \frac{y \cdot \left(z - x\right)}{t}
\begin{array}{l}
\mathbf{if}\;t \le -4.024110690636155670064376141757827793703 \cdot 10^{-54}:\\
\;\;\;\;x + y \cdot \left(\frac{z}{t} - \frac{x}{t}\right)\\

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

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

\end{array}
double f(double x, double y, double z, double t) {
        double r311843 = x;
        double r311844 = y;
        double r311845 = z;
        double r311846 = r311845 - r311843;
        double r311847 = r311844 * r311846;
        double r311848 = t;
        double r311849 = r311847 / r311848;
        double r311850 = r311843 + r311849;
        return r311850;
}

double f(double x, double y, double z, double t) {
        double r311851 = t;
        double r311852 = -4.0241106906361557e-54;
        bool r311853 = r311851 <= r311852;
        double r311854 = x;
        double r311855 = y;
        double r311856 = z;
        double r311857 = r311856 / r311851;
        double r311858 = r311854 / r311851;
        double r311859 = r311857 - r311858;
        double r311860 = r311855 * r311859;
        double r311861 = r311854 + r311860;
        double r311862 = 4.4825416426582985e-266;
        bool r311863 = r311851 <= r311862;
        double r311864 = 1.0;
        double r311865 = r311856 - r311854;
        double r311866 = r311855 * r311865;
        double r311867 = r311851 / r311866;
        double r311868 = r311864 / r311867;
        double r311869 = r311854 + r311868;
        double r311870 = cbrt(r311855);
        double r311871 = r311870 * r311870;
        double r311872 = cbrt(r311851);
        double r311873 = r311871 / r311872;
        double r311874 = r311870 / r311872;
        double r311875 = r311865 / r311872;
        double r311876 = r311874 * r311875;
        double r311877 = r311873 * r311876;
        double r311878 = r311854 + r311877;
        double r311879 = r311863 ? r311869 : r311878;
        double r311880 = r311853 ? r311861 : r311879;
        return r311880;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original6.4
Target2.2
Herbie1.8
\[x - \left(x \cdot \frac{y}{t} + \left(-z\right) \cdot \frac{y}{t}\right)\]

Derivation

  1. Split input into 3 regimes
  2. if t < -4.0241106906361557e-54

    1. Initial program 8.6

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

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

      \[\leadsto x + \color{blue}{\frac{y}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{z - x}{\sqrt[3]{t}}}\]
    5. Taylor expanded around 0 8.6

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

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

    if -4.0241106906361557e-54 < t < 4.4825416426582985e-266

    1. Initial program 2.3

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

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

    if 4.4825416426582985e-266 < t

    1. Initial program 6.2

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

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -4.024110690636155670064376141757827793703 \cdot 10^{-54}:\\ \;\;\;\;x + y \cdot \left(\frac{z}{t} - \frac{x}{t}\right)\\ \mathbf{elif}\;t \le 4.482541642658298470975327978871003617787 \cdot 10^{-266}:\\ \;\;\;\;x + \frac{1}{\frac{t}{y \cdot \left(z - x\right)}}\\ \mathbf{else}:\\ \;\;\;\;x + \frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{\sqrt[3]{t}} \cdot \left(\frac{\sqrt[3]{y}}{\sqrt[3]{t}} \cdot \frac{z - x}{\sqrt[3]{t}}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019323 
(FPCore (x y z t)
  :name "Optimisation.CirclePacking:place from circle-packing-0.1.0.4, D"
  :precision binary64

  :herbie-target
  (- x (+ (* x (/ y t)) (* (- z) (/ y t))))

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