Average Error: 31.9 → 0.3
Time: 6.5s
Precision: 64
\[\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
\[-1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\left(2 \cdot \log \left(\sqrt[3]{1}\right) - \mathsf{fma}\left(\frac{2}{3}, \log base, \log \left(\sqrt[3]{\sqrt[3]{base} \cdot \sqrt[3]{base}}\right)\right)\right) + \log \left(\frac{\sqrt[3]{1}}{\sqrt[3]{\sqrt[3]{base}}}\right)}\]
\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}
-1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\left(2 \cdot \log \left(\sqrt[3]{1}\right) - \mathsf{fma}\left(\frac{2}{3}, \log base, \log \left(\sqrt[3]{\sqrt[3]{base} \cdot \sqrt[3]{base}}\right)\right)\right) + \log \left(\frac{\sqrt[3]{1}}{\sqrt[3]{\sqrt[3]{base}}}\right)}
double f(double re, double im, double base) {
        double r46510 = im;
        double r46511 = re;
        double r46512 = atan2(r46510, r46511);
        double r46513 = base;
        double r46514 = log(r46513);
        double r46515 = r46512 * r46514;
        double r46516 = r46511 * r46511;
        double r46517 = r46510 * r46510;
        double r46518 = r46516 + r46517;
        double r46519 = sqrt(r46518);
        double r46520 = log(r46519);
        double r46521 = 0.0;
        double r46522 = r46520 * r46521;
        double r46523 = r46515 - r46522;
        double r46524 = r46514 * r46514;
        double r46525 = r46521 * r46521;
        double r46526 = r46524 + r46525;
        double r46527 = r46523 / r46526;
        return r46527;
}

double f(double re, double im, double base) {
        double r46528 = -1.0;
        double r46529 = im;
        double r46530 = re;
        double r46531 = atan2(r46529, r46530);
        double r46532 = 2.0;
        double r46533 = 1.0;
        double r46534 = cbrt(r46533);
        double r46535 = log(r46534);
        double r46536 = r46532 * r46535;
        double r46537 = 0.6666666666666666;
        double r46538 = base;
        double r46539 = log(r46538);
        double r46540 = cbrt(r46538);
        double r46541 = r46540 * r46540;
        double r46542 = cbrt(r46541);
        double r46543 = log(r46542);
        double r46544 = fma(r46537, r46539, r46543);
        double r46545 = r46536 - r46544;
        double r46546 = cbrt(r46540);
        double r46547 = r46534 / r46546;
        double r46548 = log(r46547);
        double r46549 = r46545 + r46548;
        double r46550 = r46531 / r46549;
        double r46551 = r46528 * r46550;
        return r46551;
}

Error

Bits error versus re

Bits error versus im

Bits error versus base

Derivation

  1. Initial program 31.9

    \[\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0.0}{\log base \cdot \log base + 0.0 \cdot 0.0}\]
  2. Taylor expanded around inf 0.3

    \[\leadsto \color{blue}{-1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\log \left(\frac{1}{base}\right)}}\]
  3. Using strategy rm
  4. Applied add-cube-cbrt0.3

    \[\leadsto -1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\log \left(\frac{1}{\color{blue}{\left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) \cdot \sqrt[3]{base}}}\right)}\]
  5. Applied add-cube-cbrt0.3

    \[\leadsto -1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\log \left(\frac{\color{blue}{\left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \sqrt[3]{1}}}{\left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) \cdot \sqrt[3]{base}}\right)}\]
  6. Applied times-frac0.3

    \[\leadsto -1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\log \color{blue}{\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt[3]{base} \cdot \sqrt[3]{base}} \cdot \frac{\sqrt[3]{1}}{\sqrt[3]{base}}\right)}}\]
  7. Applied log-prod0.4

    \[\leadsto -1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\color{blue}{\log \left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt[3]{base} \cdot \sqrt[3]{base}}\right) + \log \left(\frac{\sqrt[3]{1}}{\sqrt[3]{base}}\right)}}\]
  8. Simplified0.4

    \[\leadsto -1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\color{blue}{\left(-2\right) \cdot \log \left(\sqrt[3]{base}\right)} + \log \left(\frac{\sqrt[3]{1}}{\sqrt[3]{base}}\right)}\]
  9. Simplified0.4

    \[\leadsto -1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\left(-2\right) \cdot \log \left(\sqrt[3]{base}\right) + \color{blue}{\log \left(\frac{1}{\sqrt[3]{base}}\right)}}\]
  10. Using strategy rm
  11. Applied add-cube-cbrt0.4

    \[\leadsto -1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\left(-2\right) \cdot \log \left(\sqrt[3]{base}\right) + \log \left(\frac{1}{\sqrt[3]{\color{blue}{\left(\sqrt[3]{base} \cdot \sqrt[3]{base}\right) \cdot \sqrt[3]{base}}}}\right)}\]
  12. Applied cbrt-prod0.4

    \[\leadsto -1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\left(-2\right) \cdot \log \left(\sqrt[3]{base}\right) + \log \left(\frac{1}{\color{blue}{\sqrt[3]{\sqrt[3]{base} \cdot \sqrt[3]{base}} \cdot \sqrt[3]{\sqrt[3]{base}}}}\right)}\]
  13. Applied add-cube-cbrt0.4

    \[\leadsto -1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\left(-2\right) \cdot \log \left(\sqrt[3]{base}\right) + \log \left(\frac{\color{blue}{\left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \sqrt[3]{1}}}{\sqrt[3]{\sqrt[3]{base} \cdot \sqrt[3]{base}} \cdot \sqrt[3]{\sqrt[3]{base}}}\right)}\]
  14. Applied times-frac0.4

    \[\leadsto -1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\left(-2\right) \cdot \log \left(\sqrt[3]{base}\right) + \log \color{blue}{\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt[3]{\sqrt[3]{base} \cdot \sqrt[3]{base}}} \cdot \frac{\sqrt[3]{1}}{\sqrt[3]{\sqrt[3]{base}}}\right)}}\]
  15. Applied log-prod0.4

    \[\leadsto -1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\left(-2\right) \cdot \log \left(\sqrt[3]{base}\right) + \color{blue}{\left(\log \left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt[3]{\sqrt[3]{base} \cdot \sqrt[3]{base}}}\right) + \log \left(\frac{\sqrt[3]{1}}{\sqrt[3]{\sqrt[3]{base}}}\right)\right)}}\]
  16. Applied associate-+r+0.4

    \[\leadsto -1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\color{blue}{\left(\left(-2\right) \cdot \log \left(\sqrt[3]{base}\right) + \log \left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt[3]{\sqrt[3]{base} \cdot \sqrt[3]{base}}}\right)\right) + \log \left(\frac{\sqrt[3]{1}}{\sqrt[3]{\sqrt[3]{base}}}\right)}}\]
  17. Simplified0.3

    \[\leadsto -1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\color{blue}{\left(2 \cdot \log \left(\sqrt[3]{1}\right) - \mathsf{fma}\left(\frac{2}{3}, \log base, \log \left(\sqrt[3]{\sqrt[3]{base} \cdot \sqrt[3]{base}}\right)\right)\right)} + \log \left(\frac{\sqrt[3]{1}}{\sqrt[3]{\sqrt[3]{base}}}\right)}\]
  18. Final simplification0.3

    \[\leadsto -1 \cdot \frac{\tan^{-1}_* \frac{im}{re}}{\left(2 \cdot \log \left(\sqrt[3]{1}\right) - \mathsf{fma}\left(\frac{2}{3}, \log base, \log \left(\sqrt[3]{\sqrt[3]{base} \cdot \sqrt[3]{base}}\right)\right)\right) + \log \left(\frac{\sqrt[3]{1}}{\sqrt[3]{\sqrt[3]{base}}}\right)}\]

Reproduce

herbie shell --seed 2020024 +o rules:numerics
(FPCore (re im base)
  :name "math.log/2 on complex, imaginary part"
  :precision binary64
  (/ (- (* (atan2 im re) (log base)) (* (log (sqrt (+ (* re re) (* im im)))) 0.0)) (+ (* (log base) (log base)) (* 0.0 0.0))))