Average Error: 11.5 → 3.0
Time: 26.5s
Precision: 64
\[\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}}}}\]
\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;
}

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.5
Target11.3
Herbie3.0
\[\frac{a1}{b1} \cdot \frac{a2}{b2}\]

Derivation

  1. Initial program 11.5

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

    \[\leadsto \color{blue}{\frac{a1}{\frac{b1 \cdot b2}{a2}}}\]
  4. Using strategy rm
  5. Applied associate-/l*11.0

    \[\leadsto \frac{a1}{\color{blue}{\frac{b1}{\frac{a2}{b2}}}}\]
  6. Using strategy rm
  7. Applied add-cube-cbrt11.6

    \[\leadsto \frac{a1}{\frac{b1}{\frac{a2}{\color{blue}{\left(\sqrt[3]{b2} \cdot \sqrt[3]{b2}\right) \cdot \sqrt[3]{b2}}}}}\]
  8. Applied add-cube-cbrt11.7

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

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

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

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

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

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

    \[\leadsto \color{blue}{\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}}}}\]
  15. Final simplification3.0

    \[\leadsto \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}}}}\]

Reproduce

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)))