Average Error: 31.8 → 0.5
Time: 19.9s
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{\log base}{\tan^{-1}_* \frac{im}{re}}}\]
\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{\log base}{\tan^{-1}_* \frac{im}{re}}}
double f(double re, double im, double base) {
        double r93808 = im;
        double r93809 = re;
        double r93810 = atan2(r93808, r93809);
        double r93811 = base;
        double r93812 = log(r93811);
        double r93813 = r93810 * r93812;
        double r93814 = r93809 * r93809;
        double r93815 = r93808 * r93808;
        double r93816 = r93814 + r93815;
        double r93817 = sqrt(r93816);
        double r93818 = log(r93817);
        double r93819 = 0.0;
        double r93820 = r93818 * r93819;
        double r93821 = r93813 - r93820;
        double r93822 = r93812 * r93812;
        double r93823 = r93819 * r93819;
        double r93824 = r93822 + r93823;
        double r93825 = r93821 / r93824;
        return r93825;
}

double f(double re, double im, double base) {
        double r93826 = 1.0;
        double r93827 = base;
        double r93828 = log(r93827);
        double r93829 = im;
        double r93830 = re;
        double r93831 = atan2(r93829, r93830);
        double r93832 = r93828 / r93831;
        double r93833 = r93826 / r93832;
        return r93833;
}

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.8

    \[\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. Final simplification0.5

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

Reproduce

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