Average Error: 30.8 → 0.7
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}{\log base \cdot \log base + 0 \cdot 0}\]
\[\tan^{-1}_* \frac{im}{re} \cdot \sqrt[3]{\left(\frac{1}{\log base} \cdot \frac{1}{\log base}\right) \cdot \frac{1}{\log base}}\]
\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}
\tan^{-1}_* \frac{im}{re} \cdot \sqrt[3]{\left(\frac{1}{\log base} \cdot \frac{1}{\log base}\right) \cdot \frac{1}{\log base}}
double f(double re, double im, double base) {
        double r1068595 = im;
        double r1068596 = re;
        double r1068597 = atan2(r1068595, r1068596);
        double r1068598 = base;
        double r1068599 = log(r1068598);
        double r1068600 = r1068597 * r1068599;
        double r1068601 = r1068596 * r1068596;
        double r1068602 = r1068595 * r1068595;
        double r1068603 = r1068601 + r1068602;
        double r1068604 = sqrt(r1068603);
        double r1068605 = log(r1068604);
        double r1068606 = 0.0;
        double r1068607 = r1068605 * r1068606;
        double r1068608 = r1068600 - r1068607;
        double r1068609 = r1068599 * r1068599;
        double r1068610 = r1068606 * r1068606;
        double r1068611 = r1068609 + r1068610;
        double r1068612 = r1068608 / r1068611;
        return r1068612;
}

double f(double re, double im, double base) {
        double r1068613 = im;
        double r1068614 = re;
        double r1068615 = atan2(r1068613, r1068614);
        double r1068616 = 1.0;
        double r1068617 = base;
        double r1068618 = log(r1068617);
        double r1068619 = r1068616 / r1068618;
        double r1068620 = r1068619 * r1068619;
        double r1068621 = r1068620 * r1068619;
        double r1068622 = cbrt(r1068621);
        double r1068623 = r1068615 * r1068622;
        return r1068623;
}

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. Using strategy rm
  6. Applied add-cbrt-cube0.7

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

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

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