Average Error: 15.2 → 0.5
Time: 2.8s
Precision: 64
\[x \cdot \frac{\frac{y}{z} \cdot t}{t}\]
\[\begin{array}{l} \mathbf{if}\;\frac{y}{z} \le -2.706838063418328339106128316591856551082 \cdot 10^{142}:\\ \;\;\;\;1 \cdot \left(\left(x \cdot y\right) \cdot \frac{1}{z}\right)\\ \mathbf{elif}\;\frac{y}{z} \le -1.087083851259825961859875176518064978709 \cdot 10^{-304}:\\ \;\;\;\;x \cdot \frac{y}{z}\\ \mathbf{elif}\;\frac{y}{z} \le 9.3826692587093193488764669780614891357 \cdot 10^{-317}:\\ \;\;\;\;1 \cdot \frac{x \cdot y}{z}\\ \mathbf{elif}\;\frac{y}{z} \le 4.049363857486470326376783704360767916797 \cdot 10^{289}:\\ \;\;\;\;x \cdot \frac{y}{z}\\ \mathbf{else}:\\ \;\;\;\;1 \cdot \left(\left(x \cdot y\right) \cdot \frac{1}{z}\right)\\ \end{array}\]
x \cdot \frac{\frac{y}{z} \cdot t}{t}
\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -2.706838063418328339106128316591856551082 \cdot 10^{142}:\\
\;\;\;\;1 \cdot \left(\left(x \cdot y\right) \cdot \frac{1}{z}\right)\\

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

\mathbf{elif}\;\frac{y}{z} \le 9.3826692587093193488764669780614891357 \cdot 10^{-317}:\\
\;\;\;\;1 \cdot \frac{x \cdot y}{z}\\

\mathbf{elif}\;\frac{y}{z} \le 4.049363857486470326376783704360767916797 \cdot 10^{289}:\\
\;\;\;\;x \cdot \frac{y}{z}\\

\mathbf{else}:\\
\;\;\;\;1 \cdot \left(\left(x \cdot y\right) \cdot \frac{1}{z}\right)\\

\end{array}
double f(double x, double y, double z, double t) {
        double r84007 = x;
        double r84008 = y;
        double r84009 = z;
        double r84010 = r84008 / r84009;
        double r84011 = t;
        double r84012 = r84010 * r84011;
        double r84013 = r84012 / r84011;
        double r84014 = r84007 * r84013;
        return r84014;
}

double f(double x, double y, double z, double __attribute__((unused)) t) {
        double r84015 = y;
        double r84016 = z;
        double r84017 = r84015 / r84016;
        double r84018 = -2.7068380634183283e+142;
        bool r84019 = r84017 <= r84018;
        double r84020 = 1.0;
        double r84021 = x;
        double r84022 = r84021 * r84015;
        double r84023 = r84020 / r84016;
        double r84024 = r84022 * r84023;
        double r84025 = r84020 * r84024;
        double r84026 = -1.087083851259826e-304;
        bool r84027 = r84017 <= r84026;
        double r84028 = r84021 * r84017;
        double r84029 = 9.3826692587093e-317;
        bool r84030 = r84017 <= r84029;
        double r84031 = r84022 / r84016;
        double r84032 = r84020 * r84031;
        double r84033 = 4.04936385748647e+289;
        bool r84034 = r84017 <= r84033;
        double r84035 = r84034 ? r84028 : r84025;
        double r84036 = r84030 ? r84032 : r84035;
        double r84037 = r84027 ? r84028 : r84036;
        double r84038 = r84019 ? r84025 : r84037;
        return r84038;
}

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 3 regimes
  2. if (/ y z) < -2.7068380634183283e+142 or 4.04936385748647e+289 < (/ y z)

    1. Initial program 41.9

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

      \[\leadsto \color{blue}{x \cdot \frac{y}{z}}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt28.2

      \[\leadsto x \cdot \frac{y}{\color{blue}{\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}}}\]
    5. Applied *-un-lft-identity28.2

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

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

      \[\leadsto \color{blue}{\left(x \cdot \frac{1}{\sqrt[3]{z} \cdot \sqrt[3]{z}}\right) \cdot \frac{y}{\sqrt[3]{z}}}\]
    8. Simplified7.5

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

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

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

      \[\leadsto 1 \cdot \color{blue}{\frac{x \cdot y}{z}}\]
    13. Using strategy rm
    14. Applied div-inv2.4

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

    if -2.7068380634183283e+142 < (/ y z) < -1.087083851259826e-304 or 9.3826692587093e-317 < (/ y z) < 4.04936385748647e+289

    1. Initial program 9.4

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

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

    if -1.087083851259826e-304 < (/ y z) < 9.3826692587093e-317

    1. Initial program 21.4

      \[x \cdot \frac{\frac{y}{z} \cdot t}{t}\]
    2. Simplified20.6

      \[\leadsto \color{blue}{x \cdot \frac{y}{z}}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt20.6

      \[\leadsto x \cdot \frac{y}{\color{blue}{\left(\sqrt[3]{z} \cdot \sqrt[3]{z}\right) \cdot \sqrt[3]{z}}}\]
    5. Applied *-un-lft-identity20.6

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

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

      \[\leadsto \color{blue}{\left(x \cdot \frac{1}{\sqrt[3]{z} \cdot \sqrt[3]{z}}\right) \cdot \frac{y}{\sqrt[3]{z}}}\]
    8. Simplified4.4

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{y}{z} \le -2.706838063418328339106128316591856551082 \cdot 10^{142}:\\ \;\;\;\;1 \cdot \left(\left(x \cdot y\right) \cdot \frac{1}{z}\right)\\ \mathbf{elif}\;\frac{y}{z} \le -1.087083851259825961859875176518064978709 \cdot 10^{-304}:\\ \;\;\;\;x \cdot \frac{y}{z}\\ \mathbf{elif}\;\frac{y}{z} \le 9.3826692587093193488764669780614891357 \cdot 10^{-317}:\\ \;\;\;\;1 \cdot \frac{x \cdot y}{z}\\ \mathbf{elif}\;\frac{y}{z} \le 4.049363857486470326376783704360767916797 \cdot 10^{289}:\\ \;\;\;\;x \cdot \frac{y}{z}\\ \mathbf{else}:\\ \;\;\;\;1 \cdot \left(\left(x \cdot y\right) \cdot \frac{1}{z}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019346 +o rules:numerics
(FPCore (x y z t)
  :name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1"
  :precision binary64
  (* x (/ (* (/ y z) t) t)))