Average Error: 32.3 → 0.5
Time: 13.0s
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}\]
\[\frac{1}{\frac{1}{\frac{\tan^{-1}_* \frac{im}{re}}{\log base}}}\]
\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}
\frac{1}{\frac{1}{\frac{\tan^{-1}_* \frac{im}{re}}{\log base}}}
double f(double re, double im, double base) {
        double r108879 = im;
        double r108880 = re;
        double r108881 = atan2(r108879, r108880);
        double r108882 = base;
        double r108883 = log(r108882);
        double r108884 = r108881 * r108883;
        double r108885 = r108880 * r108880;
        double r108886 = r108879 * r108879;
        double r108887 = r108885 + r108886;
        double r108888 = sqrt(r108887);
        double r108889 = log(r108888);
        double r108890 = 0.0;
        double r108891 = r108889 * r108890;
        double r108892 = r108884 - r108891;
        double r108893 = r108883 * r108883;
        double r108894 = r108890 * r108890;
        double r108895 = r108893 + r108894;
        double r108896 = r108892 / r108895;
        return r108896;
}

double f(double re, double im, double base) {
        double r108897 = 1.0;
        double r108898 = im;
        double r108899 = re;
        double r108900 = atan2(r108898, r108899);
        double r108901 = base;
        double r108902 = log(r108901);
        double r108903 = r108900 / r108902;
        double r108904 = r108897 / r108903;
        double r108905 = r108897 / r108904;
        return r108905;
}

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 32.3

    \[\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 0 0.3

    \[\leadsto \color{blue}{\frac{\tan^{-1}_* \frac{im}{re}}{\log base}}\]
  3. Using strategy rm
  4. Applied clear-num0.5

    \[\leadsto \color{blue}{\frac{1}{\frac{\log base}{\tan^{-1}_* \frac{im}{re}}}}\]
  5. Using strategy rm
  6. Applied clear-num0.5

    \[\leadsto \frac{1}{\color{blue}{\frac{1}{\frac{\tan^{-1}_* \frac{im}{re}}{\log base}}}}\]
  7. Final simplification0.5

    \[\leadsto \frac{1}{\frac{1}{\frac{\tan^{-1}_* \frac{im}{re}}{\log base}}}\]

Reproduce

herbie shell --seed 2019350 
(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))))