\frac{a1 \cdot a2}{b1 \cdot b2}\frac{\frac{\sqrt[3]{a2}}{\sqrt[3]{b2}} \cdot \frac{\sqrt[3]{a2}}{\sqrt[3]{b2}}}{\sqrt[3]{b1} \cdot \sqrt[3]{b1}} \cdot \frac{a1}{\frac{\sqrt[3]{b1}}{\frac{\sqrt[3]{a2}}{\sqrt[3]{b2}}}}double f(double a1, double a2, double b1, double b2) {
double r6884490 = a1;
double r6884491 = a2;
double r6884492 = r6884490 * r6884491;
double r6884493 = b1;
double r6884494 = b2;
double r6884495 = r6884493 * r6884494;
double r6884496 = r6884492 / r6884495;
return r6884496;
}
double f(double a1, double a2, double b1, double b2) {
double r6884497 = a2;
double r6884498 = cbrt(r6884497);
double r6884499 = b2;
double r6884500 = cbrt(r6884499);
double r6884501 = r6884498 / r6884500;
double r6884502 = r6884501 * r6884501;
double r6884503 = b1;
double r6884504 = cbrt(r6884503);
double r6884505 = r6884504 * r6884504;
double r6884506 = r6884502 / r6884505;
double r6884507 = a1;
double r6884508 = r6884504 / r6884501;
double r6884509 = r6884507 / r6884508;
double r6884510 = r6884506 * r6884509;
return r6884510;
}




Bits error versus a1




Bits error versus a2




Bits error versus b1




Bits error versus b2
Results
| Original | 11.5 |
|---|---|
| Target | 11.3 |
| Herbie | 3.0 |
Initial program 11.5
rmApplied associate-/l*11.1
rmApplied associate-/l*11.0
rmApplied add-cube-cbrt11.6
Applied add-cube-cbrt11.7
Applied times-frac11.7
Applied add-cube-cbrt11.8
Applied times-frac8.0
Applied *-un-lft-identity8.0
Applied times-frac3.1
Simplified3.0
Final simplification3.0
herbie shell --seed 2019169 +o rules:numerics
(FPCore (a1 a2 b1 b2)
:name "Quotient of products"
:herbie-target
(* (/ a1 b1) (/ a2 b2))
(/ (* a1 a2) (* b1 b2)))