Average Error: 31.7 → 0.3
Time: 21.1s
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{\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{\tan^{-1}_* \frac{im}{re}}{\log base}
double f(double re, double im, double base) {
        double r1696592 = im;
        double r1696593 = re;
        double r1696594 = atan2(r1696592, r1696593);
        double r1696595 = base;
        double r1696596 = log(r1696595);
        double r1696597 = r1696594 * r1696596;
        double r1696598 = r1696593 * r1696593;
        double r1696599 = r1696592 * r1696592;
        double r1696600 = r1696598 + r1696599;
        double r1696601 = sqrt(r1696600);
        double r1696602 = log(r1696601);
        double r1696603 = 0.0;
        double r1696604 = r1696602 * r1696603;
        double r1696605 = r1696597 - r1696604;
        double r1696606 = r1696596 * r1696596;
        double r1696607 = r1696603 * r1696603;
        double r1696608 = r1696606 + r1696607;
        double r1696609 = r1696605 / r1696608;
        return r1696609;
}

double f(double re, double im, double base) {
        double r1696610 = im;
        double r1696611 = re;
        double r1696612 = atan2(r1696610, r1696611);
        double r1696613 = base;
        double r1696614 = log(r1696613);
        double r1696615 = r1696612 / r1696614;
        return r1696615;
}

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

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

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

Reproduce

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