Average Error: 11.1 → 4.7
Time: 1.2m
Precision: 64
\[\frac{a1 \cdot a2}{b1 \cdot b2}\]
\[\begin{array}{l} \mathbf{if}\;b1 \cdot b2 \le -9.428960705880200876258961640243637000071 \cdot 10^{126}:\\ \;\;\;\;\left(\frac{\frac{\frac{\sqrt[3]{a1}}{\sqrt[3]{b1}}}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{a2}{\sqrt[3]{b2}}\right) \cdot \frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}\\ \mathbf{elif}\;b1 \cdot b2 \le -2.337318175673325191697464939403041140096 \cdot 10^{-34}:\\ \;\;\;\;\frac{1}{\frac{b1 \cdot b2}{a1 \cdot a2}}\\ \mathbf{elif}\;b1 \cdot b2 \le 2.661278386110765337328613993419610157189 \cdot 10^{-140}:\\ \;\;\;\;\left(\frac{\frac{\frac{\sqrt[3]{a1}}{\sqrt[3]{b1}}}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{a2}{\sqrt[3]{b2}}\right) \cdot \frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}\\ \mathbf{elif}\;b1 \cdot b2 \le 2.596371441371215395153086343174960900167 \cdot 10^{-45}:\\ \;\;\;\;\frac{1}{\frac{b1 \cdot b2}{a1 \cdot a2}}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{\frac{\frac{\sqrt[3]{a1}}{\sqrt[3]{b1}}}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{a2}{\sqrt[3]{b2}}\right) \cdot \frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}\\ \end{array}\]
\frac{a1 \cdot a2}{b1 \cdot b2}
\begin{array}{l}
\mathbf{if}\;b1 \cdot b2 \le -9.428960705880200876258961640243637000071 \cdot 10^{126}:\\
\;\;\;\;\left(\frac{\frac{\frac{\sqrt[3]{a1}}{\sqrt[3]{b1}}}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{a2}{\sqrt[3]{b2}}\right) \cdot \frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}\\

\mathbf{elif}\;b1 \cdot b2 \le -2.337318175673325191697464939403041140096 \cdot 10^{-34}:\\
\;\;\;\;\frac{1}{\frac{b1 \cdot b2}{a1 \cdot a2}}\\

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

\mathbf{elif}\;b1 \cdot b2 \le 2.596371441371215395153086343174960900167 \cdot 10^{-45}:\\
\;\;\;\;\frac{1}{\frac{b1 \cdot b2}{a1 \cdot a2}}\\

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

\end{array}
double f(double a1, double a2, double b1, double b2) {
        double r6392962 = a1;
        double r6392963 = a2;
        double r6392964 = r6392962 * r6392963;
        double r6392965 = b1;
        double r6392966 = b2;
        double r6392967 = r6392965 * r6392966;
        double r6392968 = r6392964 / r6392967;
        return r6392968;
}

double f(double a1, double a2, double b1, double b2) {
        double r6392969 = b1;
        double r6392970 = b2;
        double r6392971 = r6392969 * r6392970;
        double r6392972 = -9.428960705880201e+126;
        bool r6392973 = r6392971 <= r6392972;
        double r6392974 = a1;
        double r6392975 = cbrt(r6392974);
        double r6392976 = cbrt(r6392969);
        double r6392977 = r6392975 / r6392976;
        double r6392978 = cbrt(r6392970);
        double r6392979 = r6392977 / r6392978;
        double r6392980 = r6392979 / r6392978;
        double r6392981 = a2;
        double r6392982 = r6392981 / r6392978;
        double r6392983 = r6392980 * r6392982;
        double r6392984 = r6392975 * r6392975;
        double r6392985 = r6392976 * r6392976;
        double r6392986 = r6392984 / r6392985;
        double r6392987 = r6392983 * r6392986;
        double r6392988 = -2.337318175673325e-34;
        bool r6392989 = r6392971 <= r6392988;
        double r6392990 = 1.0;
        double r6392991 = r6392974 * r6392981;
        double r6392992 = r6392971 / r6392991;
        double r6392993 = r6392990 / r6392992;
        double r6392994 = 2.6612783861107653e-140;
        bool r6392995 = r6392971 <= r6392994;
        double r6392996 = 2.5963714413712154e-45;
        bool r6392997 = r6392971 <= r6392996;
        double r6392998 = r6392997 ? r6392993 : r6392987;
        double r6392999 = r6392995 ? r6392987 : r6392998;
        double r6393000 = r6392989 ? r6392993 : r6392999;
        double r6393001 = r6392973 ? r6392987 : r6393000;
        return r6393001;
}

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
Herbie4.7
\[\frac{a1}{b1} \cdot \frac{a2}{b2}\]

Derivation

  1. Split input into 2 regimes
  2. if (* b1 b2) < -9.428960705880201e+126 or -2.337318175673325e-34 < (* b1 b2) < 2.6612783861107653e-140 or 2.5963714413712154e-45 < (* b1 b2)

    1. Initial program 13.0

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

      \[\leadsto \color{blue}{\frac{a1}{b1} \cdot \frac{a2}{b2}}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt10.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-identity10.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-frac10.4

      \[\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*9.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. Simplified9.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 *-un-lft-identity9.6

      \[\leadsto \frac{\frac{\frac{a1}{b1}}{\sqrt[3]{b2}}}{\color{blue}{1 \cdot \sqrt[3]{b2}}} \cdot \frac{a2}{\sqrt[3]{b2}}\]
    12. Applied *-un-lft-identity9.6

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

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

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

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

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

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

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

    if -9.428960705880201e+126 < (* b1 b2) < -2.337318175673325e-34 or 2.6612783861107653e-140 < (* b1 b2) < 2.5963714413712154e-45

    1. Initial program 3.3

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b1 \cdot b2 \le -9.428960705880200876258961640243637000071 \cdot 10^{126}:\\ \;\;\;\;\left(\frac{\frac{\frac{\sqrt[3]{a1}}{\sqrt[3]{b1}}}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{a2}{\sqrt[3]{b2}}\right) \cdot \frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}\\ \mathbf{elif}\;b1 \cdot b2 \le -2.337318175673325191697464939403041140096 \cdot 10^{-34}:\\ \;\;\;\;\frac{1}{\frac{b1 \cdot b2}{a1 \cdot a2}}\\ \mathbf{elif}\;b1 \cdot b2 \le 2.661278386110765337328613993419610157189 \cdot 10^{-140}:\\ \;\;\;\;\left(\frac{\frac{\frac{\sqrt[3]{a1}}{\sqrt[3]{b1}}}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{a2}{\sqrt[3]{b2}}\right) \cdot \frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}\\ \mathbf{elif}\;b1 \cdot b2 \le 2.596371441371215395153086343174960900167 \cdot 10^{-45}:\\ \;\;\;\;\frac{1}{\frac{b1 \cdot b2}{a1 \cdot a2}}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{\frac{\frac{\sqrt[3]{a1}}{\sqrt[3]{b1}}}{\sqrt[3]{b2}}}{\sqrt[3]{b2}} \cdot \frac{a2}{\sqrt[3]{b2}}\right) \cdot \frac{\sqrt[3]{a1} \cdot \sqrt[3]{a1}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}}\\ \end{array}\]

Reproduce

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

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

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