Average Error: 11.4 → 2.0
Time: 15.3s
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 r172273 = a1;
        double r172274 = a2;
        double r172275 = r172273 * r172274;
        double r172276 = b1;
        double r172277 = b2;
        double r172278 = r172276 * r172277;
        double r172279 = r172275 / r172278;
        return r172279;
}

double f(double a1, double a2, double b1, double b2) {
        double r172280 = a1;
        double r172281 = a2;
        double r172282 = r172280 * r172281;
        double r172283 = b1;
        double r172284 = b2;
        double r172285 = r172283 * r172284;
        double r172286 = r172282 / r172285;
        double r172287 = -inf.0;
        bool r172288 = r172286 <= r172287;
        double r172289 = cbrt(r172284);
        double r172290 = r172280 / r172289;
        double r172291 = r172290 / r172289;
        double r172292 = r172281 / r172283;
        double r172293 = r172292 / r172289;
        double r172294 = r172291 * r172293;
        double r172295 = -1.5091135102985783e-293;
        bool r172296 = r172286 <= r172295;
        double r172297 = 0.0;
        bool r172298 = r172286 <= r172297;
        double r172299 = cbrt(r172281);
        double r172300 = r172299 * r172299;
        double r172301 = cbrt(r172283);
        double r172302 = r172301 * r172301;
        double r172303 = r172300 / r172302;
        double r172304 = cbrt(r172303);
        double r172305 = r172304 * r172304;
        double r172306 = 1.0;
        double r172307 = cbrt(r172300);
        double r172308 = cbrt(r172302);
        double r172309 = r172307 / r172308;
        double r172310 = r172306 / r172309;
        double r172311 = r172305 / r172310;
        double r172312 = r172291 * r172311;
        double r172313 = cbrt(r172299);
        double r172314 = cbrt(r172301);
        double r172315 = r172313 / r172314;
        double r172316 = r172289 / r172315;
        double r172317 = r172304 / r172316;
        double r172318 = r172312 * r172317;
        double r172319 = 2.7924622985567088e+265;
        bool r172320 = r172286 <= r172319;
        double r172321 = r172280 / r172283;
        double r172322 = r172281 / r172284;
        double r172323 = r172321 * r172322;
        double r172324 = r172320 ? r172286 : r172323;
        double r172325 = r172298 ? r172318 : r172324;
        double r172326 = r172296 ? r172286 : r172325;
        double r172327 = r172288 ? r172294 : r172326;
        return r172327;
}

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 
(FPCore (a1 a2 b1 b2)
  :name "Quotient of products"
  :precision binary64

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

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