Average Error: 11.1 → 5.0
Time: 6.5m
Precision: 64
\[\frac{a1 \cdot a2}{b1 \cdot b2}\]
\[\begin{array}{l} \mathbf{if}\;a1 \cdot a2 = -\infty:\\ \;\;\;\;\frac{a2}{\sqrt[3]{b2}} \cdot \left(\frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b2}} \cdot \frac{\frac{\sqrt[3]{a1}}{b1}}{\sqrt[3]{b2}}\right)\\ \mathbf{elif}\;a1 \cdot a2 \le -5.841733098692663762903904892944559559654 \cdot 10^{-155}:\\ \;\;\;\;\frac{\frac{a1 \cdot a2}{b1}}{b2}\\ \mathbf{elif}\;a1 \cdot a2 \le 9.870262468729980181103925129699646064015 \cdot 10^{-33}:\\ \;\;\;\;\frac{a2 \cdot \frac{\frac{1}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}}}}{\sqrt[3]{b2} \cdot \frac{\sqrt[3]{b2}}{\frac{\frac{a1}{\sqrt[3]{b1}}}{\sqrt[3]{\sqrt[3]{b2}}}}}\\ \mathbf{elif}\;a1 \cdot a2 \le 1.730858527692710738611248585413969126226 \cdot 10^{90}:\\ \;\;\;\;\frac{1}{\frac{b2 \cdot b1}{a1 \cdot a2}}\\ \mathbf{else}:\\ \;\;\;\;\frac{a2 \cdot \frac{\frac{1}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}}}}{\sqrt[3]{b2} \cdot \frac{\sqrt[3]{b2}}{\frac{\frac{a1}{\sqrt[3]{b1}}}{\sqrt[3]{\sqrt[3]{b2}}}}}\\ \end{array}\]
\frac{a1 \cdot a2}{b1 \cdot b2}
\begin{array}{l}
\mathbf{if}\;a1 \cdot a2 = -\infty:\\
\;\;\;\;\frac{a2}{\sqrt[3]{b2}} \cdot \left(\frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b2}} \cdot \frac{\frac{\sqrt[3]{a1}}{b1}}{\sqrt[3]{b2}}\right)\\

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

\mathbf{elif}\;a1 \cdot a2 \le 9.870262468729980181103925129699646064015 \cdot 10^{-33}:\\
\;\;\;\;\frac{a2 \cdot \frac{\frac{1}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}}}}{\sqrt[3]{b2} \cdot \frac{\sqrt[3]{b2}}{\frac{\frac{a1}{\sqrt[3]{b1}}}{\sqrt[3]{\sqrt[3]{b2}}}}}\\

\mathbf{elif}\;a1 \cdot a2 \le 1.730858527692710738611248585413969126226 \cdot 10^{90}:\\
\;\;\;\;\frac{1}{\frac{b2 \cdot b1}{a1 \cdot a2}}\\

\mathbf{else}:\\
\;\;\;\;\frac{a2 \cdot \frac{\frac{1}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}}}}{\sqrt[3]{b2} \cdot \frac{\sqrt[3]{b2}}{\frac{\frac{a1}{\sqrt[3]{b1}}}{\sqrt[3]{\sqrt[3]{b2}}}}}\\

\end{array}
double f(double a1, double a2, double b1, double b2) {
        double r17996121 = a1;
        double r17996122 = a2;
        double r17996123 = r17996121 * r17996122;
        double r17996124 = b1;
        double r17996125 = b2;
        double r17996126 = r17996124 * r17996125;
        double r17996127 = r17996123 / r17996126;
        return r17996127;
}

double f(double a1, double a2, double b1, double b2) {
        double r17996128 = a1;
        double r17996129 = a2;
        double r17996130 = r17996128 * r17996129;
        double r17996131 = -inf.0;
        bool r17996132 = r17996130 <= r17996131;
        double r17996133 = b2;
        double r17996134 = cbrt(r17996133);
        double r17996135 = r17996129 / r17996134;
        double r17996136 = cbrt(r17996128);
        double r17996137 = r17996136 * r17996136;
        double r17996138 = r17996137 / r17996134;
        double r17996139 = b1;
        double r17996140 = r17996136 / r17996139;
        double r17996141 = r17996140 / r17996134;
        double r17996142 = r17996138 * r17996141;
        double r17996143 = r17996135 * r17996142;
        double r17996144 = -5.841733098692664e-155;
        bool r17996145 = r17996130 <= r17996144;
        double r17996146 = r17996130 / r17996139;
        double r17996147 = r17996146 / r17996133;
        double r17996148 = 9.87026246872998e-33;
        bool r17996149 = r17996130 <= r17996148;
        double r17996150 = 1.0;
        double r17996151 = cbrt(r17996139);
        double r17996152 = r17996151 * r17996151;
        double r17996153 = r17996150 / r17996152;
        double r17996154 = r17996134 * r17996134;
        double r17996155 = cbrt(r17996154);
        double r17996156 = r17996153 / r17996155;
        double r17996157 = r17996129 * r17996156;
        double r17996158 = r17996128 / r17996151;
        double r17996159 = cbrt(r17996134);
        double r17996160 = r17996158 / r17996159;
        double r17996161 = r17996134 / r17996160;
        double r17996162 = r17996134 * r17996161;
        double r17996163 = r17996157 / r17996162;
        double r17996164 = 1.7308585276927107e+90;
        bool r17996165 = r17996130 <= r17996164;
        double r17996166 = r17996133 * r17996139;
        double r17996167 = r17996166 / r17996130;
        double r17996168 = r17996150 / r17996167;
        double r17996169 = r17996165 ? r17996168 : r17996163;
        double r17996170 = r17996149 ? r17996163 : r17996169;
        double r17996171 = r17996145 ? r17996147 : r17996170;
        double r17996172 = r17996132 ? r17996143 : r17996171;
        return r17996172;
}

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.1
Target11.2
Herbie5.0
\[\frac{a1}{b1} \cdot \frac{a2}{b2}\]

Derivation

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

    1. Initial program 64.0

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

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

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

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

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

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

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

      \[\leadsto \frac{\frac{\frac{a1}{b1}}{\sqrt[3]{b2}}}{\color{blue}{\sqrt{\sqrt[3]{b2}} \cdot \sqrt{\sqrt[3]{b2}}}} \cdot \frac{a2}{\sqrt[3]{b2}}\]
    12. Applied add-sqr-sqrt33.4

      \[\leadsto \frac{\frac{\frac{a1}{b1}}{\color{blue}{\sqrt{\sqrt[3]{b2}} \cdot \sqrt{\sqrt[3]{b2}}}}}{\sqrt{\sqrt[3]{b2}} \cdot \sqrt{\sqrt[3]{b2}}} \cdot \frac{a2}{\sqrt[3]{b2}}\]
    13. Applied *-un-lft-identity33.4

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

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

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

      \[\leadsto \frac{\color{blue}{\frac{\frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{1}}{\sqrt{\sqrt[3]{b2}}} \cdot \frac{\frac{\sqrt[3]{a1}}{b1}}{\sqrt{\sqrt[3]{b2}}}}}{\sqrt{\sqrt[3]{b2}} \cdot \sqrt{\sqrt[3]{b2}}} \cdot \frac{a2}{\sqrt[3]{b2}}\]
    17. Applied times-frac32.0

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

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

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

    if -inf.0 < (* a1 a2) < -5.841733098692664e-155

    1. Initial program 5.1

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

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

    if -5.841733098692664e-155 < (* a1 a2) < 9.87026246872998e-33 or 1.7308585276927107e+90 < (* a1 a2)

    1. Initial program 13.5

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

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

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

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

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

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

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

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

      \[\leadsto \frac{\frac{\frac{a1}{b1}}{\color{blue}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}} \cdot \sqrt[3]{\sqrt[3]{b2}}}}}{\sqrt[3]{b2}} \cdot \frac{a2}{\sqrt[3]{b2}}\]
    13. Applied add-cube-cbrt8.2

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

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

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

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

      \[\leadsto \color{blue}{\frac{\frac{\frac{1}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}}}}{\frac{\sqrt[3]{b2}}{\frac{\frac{a1}{\sqrt[3]{b1}}}{\sqrt[3]{\sqrt[3]{b2}}}}}} \cdot \frac{a2}{\sqrt[3]{b2}}\]
    18. Using strategy rm
    19. Applied frac-times5.5

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

    if 9.87026246872998e-33 < (* a1 a2) < 1.7308585276927107e+90

    1. Initial program 2.2

      \[\frac{a1 \cdot a2}{b1 \cdot b2}\]
    2. Using strategy rm
    3. Applied clear-num2.4

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;a1 \cdot a2 = -\infty:\\ \;\;\;\;\frac{a2}{\sqrt[3]{b2}} \cdot \left(\frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b2}} \cdot \frac{\frac{\sqrt[3]{a1}}{b1}}{\sqrt[3]{b2}}\right)\\ \mathbf{elif}\;a1 \cdot a2 \le -5.841733098692663762903904892944559559654 \cdot 10^{-155}:\\ \;\;\;\;\frac{\frac{a1 \cdot a2}{b1}}{b2}\\ \mathbf{elif}\;a1 \cdot a2 \le 9.870262468729980181103925129699646064015 \cdot 10^{-33}:\\ \;\;\;\;\frac{a2 \cdot \frac{\frac{1}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}}}}{\sqrt[3]{b2} \cdot \frac{\sqrt[3]{b2}}{\frac{\frac{a1}{\sqrt[3]{b1}}}{\sqrt[3]{\sqrt[3]{b2}}}}}\\ \mathbf{elif}\;a1 \cdot a2 \le 1.730858527692710738611248585413969126226 \cdot 10^{90}:\\ \;\;\;\;\frac{1}{\frac{b2 \cdot b1}{a1 \cdot a2}}\\ \mathbf{else}:\\ \;\;\;\;\frac{a2 \cdot \frac{\frac{1}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}}{\sqrt[3]{\sqrt[3]{b2} \cdot \sqrt[3]{b2}}}}{\sqrt[3]{b2} \cdot \frac{\sqrt[3]{b2}}{\frac{\frac{a1}{\sqrt[3]{b1}}}{\sqrt[3]{\sqrt[3]{b2}}}}}\\ \end{array}\]

Reproduce

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

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

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