Average Error: 30.8 → 0.4
Time: 18.1s
Precision: 64
\[\frac{\tan^{-1}_* \frac{im}{re} \cdot \log base - \log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\]
\[\frac{1}{\log base} \cdot \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}{\log base \cdot \log base + 0 \cdot 0}
\frac{1}{\log base} \cdot \tan^{-1}_* \frac{im}{re}
double f(double re, double im, double base) {
        double r1039594 = im;
        double r1039595 = re;
        double r1039596 = atan2(r1039594, r1039595);
        double r1039597 = base;
        double r1039598 = log(r1039597);
        double r1039599 = r1039596 * r1039598;
        double r1039600 = r1039595 * r1039595;
        double r1039601 = r1039594 * r1039594;
        double r1039602 = r1039600 + r1039601;
        double r1039603 = sqrt(r1039602);
        double r1039604 = log(r1039603);
        double r1039605 = 0.0;
        double r1039606 = r1039604 * r1039605;
        double r1039607 = r1039599 - r1039606;
        double r1039608 = r1039598 * r1039598;
        double r1039609 = r1039605 * r1039605;
        double r1039610 = r1039608 + r1039609;
        double r1039611 = r1039607 / r1039610;
        return r1039611;
}

double f(double re, double im, double base) {
        double r1039612 = 1.0;
        double r1039613 = base;
        double r1039614 = log(r1039613);
        double r1039615 = r1039612 / r1039614;
        double r1039616 = im;
        double r1039617 = re;
        double r1039618 = atan2(r1039616, r1039617);
        double r1039619 = r1039615 * r1039618;
        return r1039619;
}

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 30.8

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

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

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

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

Reproduce

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