Average Error: 14.3 → 2.9
Time: 32.7s
Precision: 64
\[x \cdot \frac{\frac{y}{z} \cdot t}{t}\]
\[\begin{array}{l} \mathbf{if}\;\frac{y}{z} = -\infty:\\ \;\;\;\;\frac{x \cdot y}{z}\\ \mathbf{elif}\;\frac{y}{z} \le -5.662799451522715 \cdot 10^{-101}:\\ \;\;\;\;\frac{y}{z} \cdot x\\ \mathbf{elif}\;\frac{y}{z} \le 5.661789367158313 \cdot 10^{-215}:\\ \;\;\;\;\frac{y}{\frac{z}{x}}\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right)\right) \cdot \frac{\sqrt[3]{y}}{z}\\ \end{array}\]
double f(double x, double y, double z, double t) {
        double r12847371 = x;
        double r12847372 = y;
        double r12847373 = z;
        double r12847374 = r12847372 / r12847373;
        double r12847375 = t;
        double r12847376 = r12847374 * r12847375;
        double r12847377 = r12847376 / r12847375;
        double r12847378 = r12847371 * r12847377;
        return r12847378;
}

double f(double x, double y, double z, double __attribute__((unused)) t) {
        double r12847379 = y;
        double r12847380 = z;
        double r12847381 = r12847379 / r12847380;
        double r12847382 = -inf.0;
        bool r12847383 = r12847381 <= r12847382;
        double r12847384 = x;
        double r12847385 = r12847384 * r12847379;
        double r12847386 = r12847385 / r12847380;
        double r12847387 = -5.662799451522715e-101;
        bool r12847388 = r12847381 <= r12847387;
        double r12847389 = r12847381 * r12847384;
        double r12847390 = 5.661789367158313e-215;
        bool r12847391 = r12847381 <= r12847390;
        double r12847392 = r12847380 / r12847384;
        double r12847393 = r12847379 / r12847392;
        double r12847394 = cbrt(r12847379);
        double r12847395 = r12847394 * r12847394;
        double r12847396 = r12847384 * r12847395;
        double r12847397 = r12847394 / r12847380;
        double r12847398 = r12847396 * r12847397;
        double r12847399 = r12847391 ? r12847393 : r12847398;
        double r12847400 = r12847388 ? r12847389 : r12847399;
        double r12847401 = r12847383 ? r12847386 : r12847400;
        return r12847401;
}

x \cdot \frac{\frac{y}{z} \cdot t}{t}
\begin{array}{l}
\mathbf{if}\;\frac{y}{z} = -\infty:\\
\;\;\;\;\frac{x \cdot y}{z}\\

\mathbf{elif}\;\frac{y}{z} \le -5.662799451522715 \cdot 10^{-101}:\\
\;\;\;\;\frac{y}{z} \cdot x\\

\mathbf{elif}\;\frac{y}{z} \le 5.661789367158313 \cdot 10^{-215}:\\
\;\;\;\;\frac{y}{\frac{z}{x}}\\

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

\end{array}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Derivation

  1. Split input into 4 regimes
  2. if (/ y z) < -inf.0

    1. Initial program 60.0

      \[x \cdot \frac{\frac{y}{z} \cdot t}{t}\]
    2. Simplified60.0

      \[\leadsto \color{blue}{x \cdot \frac{y}{z}}\]
    3. Using strategy rm
    4. Applied associate-*r/0.3

      \[\leadsto \color{blue}{\frac{x \cdot y}{z}}\]

    if -inf.0 < (/ y z) < -5.662799451522715e-101

    1. Initial program 9.7

      \[x \cdot \frac{\frac{y}{z} \cdot t}{t}\]
    2. Simplified0.3

      \[\leadsto \color{blue}{x \cdot \frac{y}{z}}\]

    if -5.662799451522715e-101 < (/ y z) < 5.661789367158313e-215

    1. Initial program 15.5

      \[x \cdot \frac{\frac{y}{z} \cdot t}{t}\]
    2. Simplified8.5

      \[\leadsto \color{blue}{x \cdot \frac{y}{z}}\]
    3. Using strategy rm
    4. Applied *-un-lft-identity8.5

      \[\leadsto x \cdot \frac{y}{\color{blue}{1 \cdot z}}\]
    5. Applied add-cube-cbrt8.9

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

      \[\leadsto x \cdot \color{blue}{\left(\frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{1} \cdot \frac{\sqrt[3]{y}}{z}\right)}\]
    7. Applied associate-*r*2.9

      \[\leadsto \color{blue}{\left(x \cdot \frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{1}\right) \cdot \frac{\sqrt[3]{y}}{z}}\]
    8. Using strategy rm
    9. Applied associate-*r/2.9

      \[\leadsto \color{blue}{\frac{x \cdot \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right)}{1}} \cdot \frac{\sqrt[3]{y}}{z}\]
    10. Applied associate-*l/2.9

      \[\leadsto \color{blue}{\frac{\left(x \cdot \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right)\right) \cdot \frac{\sqrt[3]{y}}{z}}{1}}\]
    11. Simplified1.6

      \[\leadsto \frac{\color{blue}{\frac{y}{\frac{z}{x}}}}{1}\]

    if 5.661789367158313e-215 < (/ y z)

    1. Initial program 13.4

      \[x \cdot \frac{\frac{y}{z} \cdot t}{t}\]
    2. Simplified4.3

      \[\leadsto \color{blue}{x \cdot \frac{y}{z}}\]
    3. Using strategy rm
    4. Applied *-un-lft-identity4.3

      \[\leadsto x \cdot \frac{y}{\color{blue}{1 \cdot z}}\]
    5. Applied add-cube-cbrt5.3

      \[\leadsto x \cdot \frac{\color{blue}{\left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right) \cdot \sqrt[3]{y}}}{1 \cdot z}\]
    6. Applied times-frac5.3

      \[\leadsto x \cdot \color{blue}{\left(\frac{\sqrt[3]{y} \cdot \sqrt[3]{y}}{1} \cdot \frac{\sqrt[3]{y}}{z}\right)}\]
    7. Applied associate-*r*6.3

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{y}{z} = -\infty:\\ \;\;\;\;\frac{x \cdot y}{z}\\ \mathbf{elif}\;\frac{y}{z} \le -5.662799451522715 \cdot 10^{-101}:\\ \;\;\;\;\frac{y}{z} \cdot x\\ \mathbf{elif}\;\frac{y}{z} \le 5.661789367158313 \cdot 10^{-215}:\\ \;\;\;\;\frac{y}{\frac{z}{x}}\\ \mathbf{else}:\\ \;\;\;\;\left(x \cdot \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right)\right) \cdot \frac{\sqrt[3]{y}}{z}\\ \end{array}\]

Reproduce

herbie shell --seed 2019102 
(FPCore (x y z t)
  :name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1"
  (* x (/ (* (/ y z) t) t)))