\frac{a1 \cdot a2}{b1 \cdot b2}\begin{array}{l}
\mathbf{if}\;b1 \cdot b2 \le -4.8687312137033835 \cdot 10^{+179}:\\
\;\;\;\;\frac{\frac{a1}{\frac{b1}{\sqrt[3]{a2} \cdot \sqrt[3]{a2}}}}{\frac{b2}{\sqrt[3]{a2}}}\\
\mathbf{elif}\;b1 \cdot b2 \le -2.4341766497423228 \cdot 10^{-119}:\\
\;\;\;\;\frac{a1}{b1 \cdot b2} \cdot a2\\
\mathbf{elif}\;b1 \cdot b2 \le 1.9348661113959857 \cdot 10^{-269}:\\
\;\;\;\;\frac{\frac{\sqrt[3]{a2}}{\sqrt[3]{\frac{b2}{\sqrt[3]{a2}}}}}{\sqrt[3]{\frac{b2}{\sqrt[3]{a2}}}} \cdot \frac{\frac{a1}{\frac{b1}{\sqrt[3]{a2}}}}{\sqrt[3]{\frac{b2}{\sqrt[3]{a2}}}}\\
\mathbf{elif}\;b1 \cdot b2 \le 9.736381993966282 \cdot 10^{+134}:\\
\;\;\;\;\frac{a1}{b1 \cdot b2} \cdot a2\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\sqrt[3]{a2}}{\sqrt[3]{\frac{b2}{\sqrt[3]{a2}}}}}{\sqrt[3]{\frac{b2}{\sqrt[3]{a2}}}} \cdot \frac{\frac{a1}{\frac{b1}{\sqrt[3]{a2}}}}{\sqrt[3]{\frac{b2}{\sqrt[3]{a2}}}}\\
\end{array}double f(double a1, double a2, double b1, double b2) {
double r11666135 = a1;
double r11666136 = a2;
double r11666137 = r11666135 * r11666136;
double r11666138 = b1;
double r11666139 = b2;
double r11666140 = r11666138 * r11666139;
double r11666141 = r11666137 / r11666140;
return r11666141;
}
double f(double a1, double a2, double b1, double b2) {
double r11666142 = b1;
double r11666143 = b2;
double r11666144 = r11666142 * r11666143;
double r11666145 = -4.8687312137033835e+179;
bool r11666146 = r11666144 <= r11666145;
double r11666147 = a1;
double r11666148 = a2;
double r11666149 = cbrt(r11666148);
double r11666150 = r11666149 * r11666149;
double r11666151 = r11666142 / r11666150;
double r11666152 = r11666147 / r11666151;
double r11666153 = r11666143 / r11666149;
double r11666154 = r11666152 / r11666153;
double r11666155 = -2.4341766497423228e-119;
bool r11666156 = r11666144 <= r11666155;
double r11666157 = r11666147 / r11666144;
double r11666158 = r11666157 * r11666148;
double r11666159 = 1.9348661113959857e-269;
bool r11666160 = r11666144 <= r11666159;
double r11666161 = cbrt(r11666153);
double r11666162 = r11666149 / r11666161;
double r11666163 = r11666162 / r11666161;
double r11666164 = r11666142 / r11666149;
double r11666165 = r11666147 / r11666164;
double r11666166 = r11666165 / r11666161;
double r11666167 = r11666163 * r11666166;
double r11666168 = 9.736381993966282e+134;
bool r11666169 = r11666144 <= r11666168;
double r11666170 = r11666169 ? r11666158 : r11666167;
double r11666171 = r11666160 ? r11666167 : r11666170;
double r11666172 = r11666156 ? r11666158 : r11666171;
double r11666173 = r11666146 ? r11666154 : r11666172;
return r11666173;
}




Bits error versus a1




Bits error versus a2




Bits error versus b1




Bits error versus b2
Results
| Original | 10.5 |
|---|---|
| Target | 11.0 |
| Herbie | 4.9 |
if (* b1 b2) < -4.8687312137033835e+179Initial program 13.0
rmApplied associate-/l*14.5
rmApplied add-cube-cbrt14.7
Applied times-frac8.8
Applied associate-/r*5.2
if -4.8687312137033835e+179 < (* b1 b2) < -2.4341766497423228e-119 or 1.9348661113959857e-269 < (* b1 b2) < 9.736381993966282e+134Initial program 4.1
rmApplied associate-/l*4.4
rmApplied associate-/r/4.0
if -2.4341766497423228e-119 < (* b1 b2) < 1.9348661113959857e-269 or 9.736381993966282e+134 < (* b1 b2) Initial program 18.8
rmApplied associate-/l*19.3
rmApplied add-cube-cbrt19.8
Applied times-frac11.2
Applied associate-/r*6.4
rmApplied add-cube-cbrt6.6
Applied *-un-lft-identity6.6
Applied times-frac6.6
Applied *-un-lft-identity6.6
Applied times-frac6.6
Applied times-frac6.0
Simplified6.0
Final simplification4.9
herbie shell --seed 2019135
(FPCore (a1 a2 b1 b2)
:name "Quotient of products"
:herbie-target
(* (/ a1 b1) (/ a2 b2))
(/ (* a1 a2) (* b1 b2)))