Average Error: 14.2 → 0.3
Time: 24.3s
Precision: 64
\[x \cdot \frac{\frac{y}{z} \cdot t}{t}\]
\[\begin{array}{l} \mathbf{if}\;\frac{y}{z} \le -2.029723206596843 \cdot 10^{+176}:\\ \;\;\;\;\frac{x \cdot y}{z}\\ \mathbf{elif}\;\frac{y}{z} \le -4.3008774718832626 \cdot 10^{-219}:\\ \;\;\;\;\frac{x}{\frac{z}{y}}\\ \mathbf{elif}\;\frac{y}{z} \le 6.218185316133478 \cdot 10^{-205}:\\ \;\;\;\;\frac{y}{\frac{z}{x}}\\ \mathbf{elif}\;\frac{y}{z} \le 4.076427841528641 \cdot 10^{+299}:\\ \;\;\;\;\frac{y}{z} \cdot x\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{\frac{z}{x}}\\ \end{array}\]
x \cdot \frac{\frac{y}{z} \cdot t}{t}
\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -2.029723206596843 \cdot 10^{+176}:\\
\;\;\;\;\frac{x \cdot y}{z}\\

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

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

\mathbf{elif}\;\frac{y}{z} \le 4.076427841528641 \cdot 10^{+299}:\\
\;\;\;\;\frac{y}{z} \cdot x\\

\mathbf{else}:\\
\;\;\;\;\frac{y}{\frac{z}{x}}\\

\end{array}
double f(double x, double y, double z, double t) {
        double r3753631 = x;
        double r3753632 = y;
        double r3753633 = z;
        double r3753634 = r3753632 / r3753633;
        double r3753635 = t;
        double r3753636 = r3753634 * r3753635;
        double r3753637 = r3753636 / r3753635;
        double r3753638 = r3753631 * r3753637;
        return r3753638;
}

double f(double x, double y, double z, double __attribute__((unused)) t) {
        double r3753639 = y;
        double r3753640 = z;
        double r3753641 = r3753639 / r3753640;
        double r3753642 = -2.029723206596843e+176;
        bool r3753643 = r3753641 <= r3753642;
        double r3753644 = x;
        double r3753645 = r3753644 * r3753639;
        double r3753646 = r3753645 / r3753640;
        double r3753647 = -4.3008774718832626e-219;
        bool r3753648 = r3753641 <= r3753647;
        double r3753649 = r3753640 / r3753639;
        double r3753650 = r3753644 / r3753649;
        double r3753651 = 6.218185316133478e-205;
        bool r3753652 = r3753641 <= r3753651;
        double r3753653 = r3753640 / r3753644;
        double r3753654 = r3753639 / r3753653;
        double r3753655 = 4.076427841528641e+299;
        bool r3753656 = r3753641 <= r3753655;
        double r3753657 = r3753641 * r3753644;
        double r3753658 = r3753656 ? r3753657 : r3753654;
        double r3753659 = r3753652 ? r3753654 : r3753658;
        double r3753660 = r3753648 ? r3753650 : r3753659;
        double r3753661 = r3753643 ? r3753646 : r3753660;
        return r3753661;
}

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

Derivation

  1. Split input into 4 regimes
  2. if (/ y z) < -2.029723206596843e+176

    1. Initial program 34.5

      \[x \cdot \frac{\frac{y}{z} \cdot t}{t}\]
    2. Simplified2.1

      \[\leadsto \color{blue}{\frac{x}{z} \cdot y}\]
    3. Taylor expanded around -inf 1.2

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

    if -2.029723206596843e+176 < (/ y z) < -4.3008774718832626e-219

    1. Initial program 7.4

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

      \[\leadsto \color{blue}{\frac{x}{z} \cdot y}\]
    3. Taylor expanded around -inf 9.1

      \[\leadsto \color{blue}{\frac{x \cdot y}{z}}\]
    4. Using strategy rm
    5. Applied associate-/l*0.2

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

    if -4.3008774718832626e-219 < (/ y z) < 6.218185316133478e-205 or 4.076427841528641e+299 < (/ y z)

    1. Initial program 21.6

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

      \[\leadsto \color{blue}{\frac{x}{z} \cdot y}\]
    3. Taylor expanded around -inf 0.4

      \[\leadsto \color{blue}{\frac{x \cdot y}{z}}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt1.0

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

      \[\leadsto \color{blue}{\frac{\frac{x \cdot y}{\sqrt[3]{z} \cdot \sqrt[3]{z}}}{\sqrt[3]{z}}}\]
    7. Using strategy rm
    8. Applied *-un-lft-identity1.0

      \[\leadsto \frac{\frac{x \cdot y}{\sqrt[3]{z} \cdot \sqrt[3]{z}}}{\sqrt[3]{\color{blue}{1 \cdot z}}}\]
    9. Applied cbrt-prod1.0

      \[\leadsto \frac{\frac{x \cdot y}{\sqrt[3]{z} \cdot \sqrt[3]{z}}}{\color{blue}{\sqrt[3]{1} \cdot \sqrt[3]{z}}}\]
    10. Applied *-un-lft-identity1.0

      \[\leadsto \frac{\color{blue}{1 \cdot \frac{x \cdot y}{\sqrt[3]{z} \cdot \sqrt[3]{z}}}}{\sqrt[3]{1} \cdot \sqrt[3]{z}}\]
    11. Applied times-frac1.0

      \[\leadsto \color{blue}{\frac{1}{\sqrt[3]{1}} \cdot \frac{\frac{x \cdot y}{\sqrt[3]{z} \cdot \sqrt[3]{z}}}{\sqrt[3]{z}}}\]
    12. Simplified1.0

      \[\leadsto \color{blue}{1} \cdot \frac{\frac{x \cdot y}{\sqrt[3]{z} \cdot \sqrt[3]{z}}}{\sqrt[3]{z}}\]
    13. Simplified0.4

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

    if 6.218185316133478e-205 < (/ y z) < 4.076427841528641e+299

    1. Initial program 9.6

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

      \[\leadsto \color{blue}{\frac{x}{z} \cdot y}\]
    3. Using strategy rm
    4. Applied div-inv9.0

      \[\leadsto \color{blue}{\left(x \cdot \frac{1}{z}\right)} \cdot y\]
    5. Applied associate-*l*0.3

      \[\leadsto \color{blue}{x \cdot \left(\frac{1}{z} \cdot y\right)}\]
    6. Simplified0.2

      \[\leadsto x \cdot \color{blue}{\frac{y}{z}}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification0.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{y}{z} \le -2.029723206596843 \cdot 10^{+176}:\\ \;\;\;\;\frac{x \cdot y}{z}\\ \mathbf{elif}\;\frac{y}{z} \le -4.3008774718832626 \cdot 10^{-219}:\\ \;\;\;\;\frac{x}{\frac{z}{y}}\\ \mathbf{elif}\;\frac{y}{z} \le 6.218185316133478 \cdot 10^{-205}:\\ \;\;\;\;\frac{y}{\frac{z}{x}}\\ \mathbf{elif}\;\frac{y}{z} \le 4.076427841528641 \cdot 10^{+299}:\\ \;\;\;\;\frac{y}{z} \cdot x\\ \mathbf{else}:\\ \;\;\;\;\frac{y}{\frac{z}{x}}\\ \end{array}\]

Reproduce

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