Average Error: 11.4 → 2.0
Time: 15.6s
Precision: 64
\[\frac{a1 \cdot a2}{b1 \cdot b2}\]
\[\begin{array}{l} \mathbf{if}\;\frac{a1 \cdot a2}{b1 \cdot b2} = -\infty:\\ \;\;\;\;\frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{\frac{a2}{b1}}{\sqrt[3]{b2}}\\ \mathbf{elif}\;\frac{a1 \cdot a2}{b1 \cdot b2} \le -1.5091135102985783 \cdot 10^{-293}:\\ \;\;\;\;\frac{a1 \cdot a2}{b1 \cdot b2}\\ \mathbf{elif}\;\frac{a1 \cdot a2}{b1 \cdot b2} \le 0.0:\\ \;\;\;\;\left(\frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{\sqrt[3]{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}} \cdot \sqrt[3]{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}}{\frac{1}{\frac{\sqrt[3]{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}}{\sqrt[3]{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}}}\right) \cdot \frac{\sqrt[3]{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}}{\frac{\sqrt[3]{b2}}{\frac{\sqrt[3]{\sqrt[3]{a2}}}{\sqrt[3]{\sqrt[3]{b1}}}}}\\ \mathbf{elif}\;\frac{a1 \cdot a2}{b1 \cdot b2} \le 2.7924622985567088 \cdot 10^{265}:\\ \;\;\;\;\frac{a1 \cdot a2}{b1 \cdot b2}\\ \mathbf{else}:\\ \;\;\;\;\frac{a1}{b1} \cdot \frac{a2}{b2}\\ \end{array}\]
\frac{a1 \cdot a2}{b1 \cdot b2}
\begin{array}{l}
\mathbf{if}\;\frac{a1 \cdot a2}{b1 \cdot b2} = -\infty:\\
\;\;\;\;\frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{\frac{a2}{b1}}{\sqrt[3]{b2}}\\

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

\mathbf{elif}\;\frac{a1 \cdot a2}{b1 \cdot b2} \le 0.0:\\
\;\;\;\;\left(\frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{\sqrt[3]{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}} \cdot \sqrt[3]{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}}{\frac{1}{\frac{\sqrt[3]{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}}{\sqrt[3]{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}}}\right) \cdot \frac{\sqrt[3]{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}}{\frac{\sqrt[3]{b2}}{\frac{\sqrt[3]{\sqrt[3]{a2}}}{\sqrt[3]{\sqrt[3]{b1}}}}}\\

\mathbf{elif}\;\frac{a1 \cdot a2}{b1 \cdot b2} \le 2.7924622985567088 \cdot 10^{265}:\\
\;\;\;\;\frac{a1 \cdot a2}{b1 \cdot b2}\\

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

\end{array}
double f(double a1, double a2, double b1, double b2) {
        double r232571 = a1;
        double r232572 = a2;
        double r232573 = r232571 * r232572;
        double r232574 = b1;
        double r232575 = b2;
        double r232576 = r232574 * r232575;
        double r232577 = r232573 / r232576;
        return r232577;
}

double f(double a1, double a2, double b1, double b2) {
        double r232578 = a1;
        double r232579 = a2;
        double r232580 = r232578 * r232579;
        double r232581 = b1;
        double r232582 = b2;
        double r232583 = r232581 * r232582;
        double r232584 = r232580 / r232583;
        double r232585 = -inf.0;
        bool r232586 = r232584 <= r232585;
        double r232587 = cbrt(r232582);
        double r232588 = r232578 / r232587;
        double r232589 = r232588 / r232587;
        double r232590 = r232579 / r232581;
        double r232591 = r232590 / r232587;
        double r232592 = r232589 * r232591;
        double r232593 = -1.5091135102985783e-293;
        bool r232594 = r232584 <= r232593;
        double r232595 = 0.0;
        bool r232596 = r232584 <= r232595;
        double r232597 = cbrt(r232579);
        double r232598 = r232597 * r232597;
        double r232599 = cbrt(r232581);
        double r232600 = r232599 * r232599;
        double r232601 = r232598 / r232600;
        double r232602 = cbrt(r232601);
        double r232603 = r232602 * r232602;
        double r232604 = 1.0;
        double r232605 = cbrt(r232598);
        double r232606 = cbrt(r232600);
        double r232607 = r232605 / r232606;
        double r232608 = r232604 / r232607;
        double r232609 = r232603 / r232608;
        double r232610 = r232589 * r232609;
        double r232611 = cbrt(r232597);
        double r232612 = cbrt(r232599);
        double r232613 = r232611 / r232612;
        double r232614 = r232587 / r232613;
        double r232615 = r232602 / r232614;
        double r232616 = r232610 * r232615;
        double r232617 = 2.7924622985567088e+265;
        bool r232618 = r232584 <= r232617;
        double r232619 = r232578 / r232581;
        double r232620 = r232579 / r232582;
        double r232621 = r232619 * r232620;
        double r232622 = r232618 ? r232584 : r232621;
        double r232623 = r232596 ? r232616 : r232622;
        double r232624 = r232594 ? r232584 : r232623;
        double r232625 = r232586 ? r232592 : r232624;
        return r232625;
}

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

Original11.4
Target11.4
Herbie2.0
\[\frac{a1}{b1} \cdot \frac{a2}{b2}\]

Derivation

  1. Split input into 4 regimes
  2. if (/ (* a1 a2) (* b1 b2)) < -inf.0

    1. Initial program 64.0

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

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

      \[\leadsto \frac{\frac{a1 \cdot a2}{b1}}{\color{blue}{\left(\sqrt[3]{b2} \cdot \sqrt[3]{b2}\right) \cdot \sqrt[3]{b2}}}\]
    6. Applied *-un-lft-identity34.9

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

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

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

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

    if -inf.0 < (/ (* a1 a2) (* b1 b2)) < -1.5091135102985783e-293 or 0.0 < (/ (* a1 a2) (* b1 b2)) < 2.7924622985567088e+265

    1. Initial program 0.9

      \[\frac{a1 \cdot a2}{b1 \cdot b2}\]

    if -1.5091135102985783e-293 < (/ (* a1 a2) (* b1 b2)) < 0.0

    1. Initial program 13.6

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

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

      \[\leadsto \frac{\frac{a1 \cdot a2}{b1}}{\color{blue}{\left(\sqrt[3]{b2} \cdot \sqrt[3]{b2}\right) \cdot \sqrt[3]{b2}}}\]
    6. Applied *-un-lft-identity6.8

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

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

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

      \[\leadsto \color{blue}{\frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}}} \cdot \frac{\frac{a2}{b1}}{\sqrt[3]{b2}}\]
    10. Using strategy rm
    11. Applied add-cube-cbrt2.7

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

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

      \[\leadsto \frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{\color{blue}{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}} \cdot \frac{\sqrt[3]{a2}}{\sqrt[3]{b1}}}}{\sqrt[3]{b2}}\]
    14. Applied associate-/l*2.5

      \[\leadsto \frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \color{blue}{\frac{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}{\frac{\sqrt[3]{b2}}{\frac{\sqrt[3]{a2}}{\sqrt[3]{b1}}}}}\]
    15. Using strategy rm
    16. Applied add-cube-cbrt2.5

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

      \[\leadsto \frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}{\frac{\sqrt[3]{b2}}{\frac{\sqrt[3]{a2}}{\color{blue}{\sqrt[3]{\sqrt[3]{b1} \cdot \sqrt[3]{b1}} \cdot \sqrt[3]{\sqrt[3]{b1}}}}}}\]
    18. Applied add-cube-cbrt2.5

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

      \[\leadsto \frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}{\frac{\sqrt[3]{b2}}{\frac{\color{blue}{\sqrt[3]{\sqrt[3]{a2} \cdot \sqrt[3]{a2}} \cdot \sqrt[3]{\sqrt[3]{a2}}}}{\sqrt[3]{\sqrt[3]{b1} \cdot \sqrt[3]{b1}} \cdot \sqrt[3]{\sqrt[3]{b1}}}}}\]
    20. Applied times-frac2.5

      \[\leadsto \frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}{\frac{\sqrt[3]{b2}}{\color{blue}{\frac{\sqrt[3]{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}}{\sqrt[3]{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}} \cdot \frac{\sqrt[3]{\sqrt[3]{a2}}}{\sqrt[3]{\sqrt[3]{b1}}}}}}\]
    21. Applied *-un-lft-identity2.5

      \[\leadsto \frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}{\frac{\color{blue}{1 \cdot \sqrt[3]{b2}}}{\frac{\sqrt[3]{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}}{\sqrt[3]{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}} \cdot \frac{\sqrt[3]{\sqrt[3]{a2}}}{\sqrt[3]{\sqrt[3]{b1}}}}}\]
    22. Applied times-frac2.5

      \[\leadsto \frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}{\color{blue}{\frac{1}{\frac{\sqrt[3]{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}}{\sqrt[3]{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}} \cdot \frac{\sqrt[3]{b2}}{\frac{\sqrt[3]{\sqrt[3]{a2}}}{\sqrt[3]{\sqrt[3]{b1}}}}}}\]
    23. Applied add-cube-cbrt2.5

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

      \[\leadsto \frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \color{blue}{\left(\frac{\sqrt[3]{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}} \cdot \sqrt[3]{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}}{\frac{1}{\frac{\sqrt[3]{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}}{\sqrt[3]{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}}} \cdot \frac{\sqrt[3]{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}}{\frac{\sqrt[3]{b2}}{\frac{\sqrt[3]{\sqrt[3]{a2}}}{\sqrt[3]{\sqrt[3]{b1}}}}}\right)}\]
    25. Applied associate-*r*1.1

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

    if 2.7924622985567088e+265 < (/ (* a1 a2) (* b1 b2))

    1. Initial program 54.3

      \[\frac{a1 \cdot a2}{b1 \cdot b2}\]
    2. Using strategy rm
    3. Applied times-frac10.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\frac{a1 \cdot a2}{b1 \cdot b2} = -\infty:\\ \;\;\;\;\frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{\frac{a2}{b1}}{\sqrt[3]{b2}}\\ \mathbf{elif}\;\frac{a1 \cdot a2}{b1 \cdot b2} \le -1.5091135102985783 \cdot 10^{-293}:\\ \;\;\;\;\frac{a1 \cdot a2}{b1 \cdot b2}\\ \mathbf{elif}\;\frac{a1 \cdot a2}{b1 \cdot b2} \le 0.0:\\ \;\;\;\;\left(\frac{\frac{a1}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{\sqrt[3]{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}} \cdot \sqrt[3]{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}}{\frac{1}{\frac{\sqrt[3]{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}}{\sqrt[3]{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}}}\right) \cdot \frac{\sqrt[3]{\frac{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}}{\frac{\sqrt[3]{b2}}{\frac{\sqrt[3]{\sqrt[3]{a2}}}{\sqrt[3]{\sqrt[3]{b1}}}}}\\ \mathbf{elif}\;\frac{a1 \cdot a2}{b1 \cdot b2} \le 2.7924622985567088 \cdot 10^{265}:\\ \;\;\;\;\frac{a1 \cdot a2}{b1 \cdot b2}\\ \mathbf{else}:\\ \;\;\;\;\frac{a1}{b1} \cdot \frac{a2}{b2}\\ \end{array}\]

Reproduce

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

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

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