Average Error: 10.8 → 3.8
Time: 26.8s
Precision: 64
\[\frac{a1 \cdot a2}{b1 \cdot b2}\]
\[\begin{array}{l} \mathbf{if}\;a1 \cdot a2 \le -3.7468035410768435 \cdot 10^{+235}:\\ \;\;\;\;\left(\frac{\sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}} \cdot \frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}}\right) \cdot \left(\frac{\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}{\sqrt[3]{\sqrt[3]{b2}}} \cdot \frac{\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}} \cdot \sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}}}\right)\\ \mathbf{elif}\;a1 \cdot a2 \le -3.1496058984402325 \cdot 10^{-142}:\\ \;\;\;\;\frac{\frac{a1 \cdot a2}{b1}}{b2}\\ \mathbf{elif}\;a1 \cdot a2 \le 2.8558537798158504 \cdot 10^{-121}:\\ \;\;\;\;\left(\frac{\sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}} \cdot \frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}}\right) \cdot \left(\frac{\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}{\sqrt[3]{\sqrt[3]{b2}}} \cdot \frac{\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}} \cdot \sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}}}\right)\\ \mathbf{elif}\;a1 \cdot a2 \le 1.4659357934311893 \cdot 10^{+112}:\\ \;\;\;\;\frac{\frac{a1 \cdot a2}{b1}}{b2}\\ \mathbf{else}:\\ \;\;\;\;a1 \cdot \frac{\frac{a2}{b1}}{b2}\\ \end{array}\]
\frac{a1 \cdot a2}{b1 \cdot b2}
\begin{array}{l}
\mathbf{if}\;a1 \cdot a2 \le -3.7468035410768435 \cdot 10^{+235}:\\
\;\;\;\;\left(\frac{\sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}} \cdot \frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}}\right) \cdot \left(\frac{\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}{\sqrt[3]{\sqrt[3]{b2}}} \cdot \frac{\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}} \cdot \sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}}}\right)\\

\mathbf{elif}\;a1 \cdot a2 \le -3.1496058984402325 \cdot 10^{-142}:\\
\;\;\;\;\frac{\frac{a1 \cdot a2}{b1}}{b2}\\

\mathbf{elif}\;a1 \cdot a2 \le 2.8558537798158504 \cdot 10^{-121}:\\
\;\;\;\;\left(\frac{\sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}} \cdot \frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}}\right) \cdot \left(\frac{\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}{\sqrt[3]{\sqrt[3]{b2}}} \cdot \frac{\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}} \cdot \sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}}}\right)\\

\mathbf{elif}\;a1 \cdot a2 \le 1.4659357934311893 \cdot 10^{+112}:\\
\;\;\;\;\frac{\frac{a1 \cdot a2}{b1}}{b2}\\

\mathbf{else}:\\
\;\;\;\;a1 \cdot \frac{\frac{a2}{b1}}{b2}\\

\end{array}
double f(double a1, double a2, double b1, double b2) {
        double r4696563 = a1;
        double r4696564 = a2;
        double r4696565 = r4696563 * r4696564;
        double r4696566 = b1;
        double r4696567 = b2;
        double r4696568 = r4696566 * r4696567;
        double r4696569 = r4696565 / r4696568;
        return r4696569;
}

double f(double a1, double a2, double b1, double b2) {
        double r4696570 = a1;
        double r4696571 = a2;
        double r4696572 = r4696570 * r4696571;
        double r4696573 = -3.7468035410768435e+235;
        bool r4696574 = r4696572 <= r4696573;
        double r4696575 = cbrt(r4696570);
        double r4696576 = b1;
        double r4696577 = cbrt(r4696576);
        double r4696578 = b2;
        double r4696579 = cbrt(r4696578);
        double r4696580 = r4696577 * r4696579;
        double r4696581 = r4696575 / r4696580;
        double r4696582 = r4696575 * r4696575;
        double r4696583 = r4696582 / r4696580;
        double r4696584 = r4696581 * r4696583;
        double r4696585 = r4696571 / r4696577;
        double r4696586 = cbrt(r4696585);
        double r4696587 = cbrt(r4696579);
        double r4696588 = r4696586 / r4696587;
        double r4696589 = r4696586 * r4696586;
        double r4696590 = r4696579 * r4696579;
        double r4696591 = cbrt(r4696590);
        double r4696592 = r4696589 / r4696591;
        double r4696593 = r4696588 * r4696592;
        double r4696594 = r4696584 * r4696593;
        double r4696595 = -3.1496058984402325e-142;
        bool r4696596 = r4696572 <= r4696595;
        double r4696597 = r4696572 / r4696576;
        double r4696598 = r4696597 / r4696578;
        double r4696599 = 2.8558537798158504e-121;
        bool r4696600 = r4696572 <= r4696599;
        double r4696601 = 1.4659357934311893e+112;
        bool r4696602 = r4696572 <= r4696601;
        double r4696603 = r4696571 / r4696576;
        double r4696604 = r4696603 / r4696578;
        double r4696605 = r4696570 * r4696604;
        double r4696606 = r4696602 ? r4696598 : r4696605;
        double r4696607 = r4696600 ? r4696594 : r4696606;
        double r4696608 = r4696596 ? r4696598 : r4696607;
        double r4696609 = r4696574 ? r4696594 : r4696608;
        return r4696609;
}

Error

Bits error versus a1

Bits error versus a2

Bits error versus b1

Bits error versus b2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original10.8
Target10.5
Herbie3.8
\[\frac{a1}{b1} \cdot \frac{a2}{b2}\]

Derivation

  1. Split input into 3 regimes
  2. if (* a1 a2) < -3.7468035410768435e+235 or -3.1496058984402325e-142 < (* a1 a2) < 2.8558537798158504e-121

    1. Initial program 15.1

      \[\frac{a1 \cdot a2}{b1 \cdot b2}\]
    2. Using strategy rm
    3. Applied associate-/r*15.1

      \[\leadsto \color{blue}{\frac{\frac{a1 \cdot a2}{b1}}{b2}}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt15.5

      \[\leadsto \frac{\frac{a1 \cdot a2}{b1}}{\color{blue}{\left(\sqrt[3]{b2} \cdot \sqrt[3]{b2}\right) \cdot \sqrt[3]{b2}}}\]
    6. Applied add-cube-cbrt15.6

      \[\leadsto \frac{\frac{a1 \cdot a2}{\color{blue}{\left(\sqrt[3]{b1} \cdot \sqrt[3]{b1}\right) \cdot \sqrt[3]{b1}}}}{\left(\sqrt[3]{b2} \cdot \sqrt[3]{b2}\right) \cdot \sqrt[3]{b2}}\]
    7. Applied times-frac8.8

      \[\leadsto \frac{\color{blue}{\frac{a1}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}} \cdot \frac{a2}{\sqrt[3]{b1}}}}{\left(\sqrt[3]{b2} \cdot \sqrt[3]{b2}\right) \cdot \sqrt[3]{b2}}\]
    8. Applied times-frac4.0

      \[\leadsto \color{blue}{\frac{\frac{a1}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}{\sqrt[3]{b2} \cdot \sqrt[3]{b2}} \cdot \frac{\frac{a2}{\sqrt[3]{b1}}}{\sqrt[3]{b2}}}\]
    9. Simplified3.7

      \[\leadsto \color{blue}{\frac{a1}{\left(\sqrt[3]{b1} \cdot \sqrt[3]{b2}\right) \cdot \left(\sqrt[3]{b1} \cdot \sqrt[3]{b2}\right)}} \cdot \frac{\frac{a2}{\sqrt[3]{b1}}}{\sqrt[3]{b2}}\]
    10. Using strategy rm
    11. Applied add-cube-cbrt3.8

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{a1} \cdot \sqrt[3]{a1}\right) \cdot \sqrt[3]{a1}}}{\left(\sqrt[3]{b1} \cdot \sqrt[3]{b2}\right) \cdot \left(\sqrt[3]{b1} \cdot \sqrt[3]{b2}\right)} \cdot \frac{\frac{a2}{\sqrt[3]{b1}}}{\sqrt[3]{b2}}\]
    12. Applied times-frac2.5

      \[\leadsto \color{blue}{\left(\frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}} \cdot \frac{\sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}}\right)} \cdot \frac{\frac{a2}{\sqrt[3]{b1}}}{\sqrt[3]{b2}}\]
    13. Using strategy rm
    14. Applied add-cube-cbrt2.5

      \[\leadsto \left(\frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}} \cdot \frac{\sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}}\right) \cdot \frac{\frac{a2}{\sqrt[3]{b1}}}{\sqrt[3]{\color{blue}{\left(\sqrt[3]{b2} \cdot \sqrt[3]{b2}\right) \cdot \sqrt[3]{b2}}}}\]
    15. Applied cbrt-prod2.5

      \[\leadsto \left(\frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}} \cdot \frac{\sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}}\right) \cdot \frac{\frac{a2}{\sqrt[3]{b1}}}{\color{blue}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}} \cdot \sqrt[3]{\sqrt[3]{b2}}}}\]
    16. Applied add-cube-cbrt2.6

      \[\leadsto \left(\frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}} \cdot \frac{\sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}}\right) \cdot \frac{\color{blue}{\left(\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}} \cdot \sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}\right) \cdot \sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}} \cdot \sqrt[3]{\sqrt[3]{b2}}}\]
    17. Applied times-frac2.6

      \[\leadsto \left(\frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}} \cdot \frac{\sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}}\right) \cdot \color{blue}{\left(\frac{\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}} \cdot \sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}}} \cdot \frac{\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}{\sqrt[3]{\sqrt[3]{b2}}}\right)}\]

    if -3.7468035410768435e+235 < (* a1 a2) < -3.1496058984402325e-142 or 2.8558537798158504e-121 < (* a1 a2) < 1.4659357934311893e+112

    1. Initial program 3.7

      \[\frac{a1 \cdot a2}{b1 \cdot b2}\]
    2. Using strategy rm
    3. Applied associate-/r*3.3

      \[\leadsto \color{blue}{\frac{\frac{a1 \cdot a2}{b1}}{b2}}\]

    if 1.4659357934311893e+112 < (* a1 a2)

    1. Initial program 22.9

      \[\frac{a1 \cdot a2}{b1 \cdot b2}\]
    2. Using strategy rm
    3. Applied associate-/r*22.5

      \[\leadsto \color{blue}{\frac{\frac{a1 \cdot a2}{b1}}{b2}}\]
    4. Using strategy rm
    5. Applied *-un-lft-identity22.5

      \[\leadsto \frac{\frac{a1 \cdot a2}{b1}}{\color{blue}{1 \cdot b2}}\]
    6. Applied *-un-lft-identity22.5

      \[\leadsto \frac{\frac{a1 \cdot a2}{\color{blue}{1 \cdot b1}}}{1 \cdot b2}\]
    7. Applied times-frac15.1

      \[\leadsto \frac{\color{blue}{\frac{a1}{1} \cdot \frac{a2}{b1}}}{1 \cdot b2}\]
    8. Applied times-frac10.8

      \[\leadsto \color{blue}{\frac{\frac{a1}{1}}{1} \cdot \frac{\frac{a2}{b1}}{b2}}\]
    9. Simplified10.8

      \[\leadsto \color{blue}{a1} \cdot \frac{\frac{a2}{b1}}{b2}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification3.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;a1 \cdot a2 \le -3.7468035410768435 \cdot 10^{+235}:\\ \;\;\;\;\left(\frac{\sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}} \cdot \frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}}\right) \cdot \left(\frac{\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}{\sqrt[3]{\sqrt[3]{b2}}} \cdot \frac{\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}} \cdot \sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}}}\right)\\ \mathbf{elif}\;a1 \cdot a2 \le -3.1496058984402325 \cdot 10^{-142}:\\ \;\;\;\;\frac{\frac{a1 \cdot a2}{b1}}{b2}\\ \mathbf{elif}\;a1 \cdot a2 \le 2.8558537798158504 \cdot 10^{-121}:\\ \;\;\;\;\left(\frac{\sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}} \cdot \frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b2}}\right) \cdot \left(\frac{\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}{\sqrt[3]{\sqrt[3]{b2}}} \cdot \frac{\sqrt[3]{\frac{a2}{\sqrt[3]{b1}}} \cdot \sqrt[3]{\frac{a2}{\sqrt[3]{b1}}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}}}\right)\\ \mathbf{elif}\;a1 \cdot a2 \le 1.4659357934311893 \cdot 10^{+112}:\\ \;\;\;\;\frac{\frac{a1 \cdot a2}{b1}}{b2}\\ \mathbf{else}:\\ \;\;\;\;a1 \cdot \frac{\frac{a2}{b1}}{b2}\\ \end{array}\]

Reproduce

herbie shell --seed 2019143 +o rules:numerics
(FPCore (a1 a2 b1 b2)
  :name "Quotient of products"

  :herbie-target
  (* (/ a1 b1) (/ a2 b2))

  (/ (* a1 a2) (* b1 b2)))