Average Error: 31.9 → 0.3
Time: 5.6s
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\right) \cdot \log \left(e^{\log \left({base}^{\frac{1}{3}}\right)}\right) + \log \left(\frac{1}{\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\right) \cdot \log \left(e^{\log \left({base}^{\frac{1}{3}}\right)}\right) + \log \left(\frac{1}{\sqrt[3]{base}}\right)}
double f(double re, double im, double base) {
        double r99161 = im;
        double r99162 = re;
        double r99163 = atan2(r99161, r99162);
        double r99164 = base;
        double r99165 = log(r99164);
        double r99166 = r99163 * r99165;
        double r99167 = r99162 * r99162;
        double r99168 = r99161 * r99161;
        double r99169 = r99167 + r99168;
        double r99170 = sqrt(r99169);
        double r99171 = log(r99170);
        double r99172 = 0.0;
        double r99173 = r99171 * r99172;
        double r99174 = r99166 - r99173;
        double r99175 = r99165 * r99165;
        double r99176 = r99172 * r99172;
        double r99177 = r99175 + r99176;
        double r99178 = r99174 / r99177;
        return r99178;
}

double f(double re, double im, double base) {
        double r99179 = -1.0;
        double r99180 = im;
        double r99181 = re;
        double r99182 = atan2(r99180, r99181);
        double r99183 = 2.0;
        double r99184 = -r99183;
        double r99185 = base;
        double r99186 = 0.3333333333333333;
        double r99187 = pow(r99185, r99186);
        double r99188 = log(r99187);
        double r99189 = exp(r99188);
        double r99190 = log(r99189);
        double r99191 = r99184 * r99190;
        double r99192 = 1.0;
        double r99193 = cbrt(r99185);
        double r99194 = r99192 / r99193;
        double r99195 = log(r99194);
        double r99196 = r99191 + r99195;
        double r99197 = r99182 / r99196;
        double r99198 = r99179 * r99197;
        return r99198;
}

Error

Bits error versus re

Bits error versus im

Bits error versus base

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

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-exp-log0.4

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

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

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

Reproduce

herbie shell --seed 2020047 +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))))