Average Error: 31.8 → 0.3
Time: 19.8s
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 r26646 = im;
        double r26647 = re;
        double r26648 = atan2(r26646, r26647);
        double r26649 = base;
        double r26650 = log(r26649);
        double r26651 = r26648 * r26650;
        double r26652 = r26647 * r26647;
        double r26653 = r26646 * r26646;
        double r26654 = r26652 + r26653;
        double r26655 = sqrt(r26654);
        double r26656 = log(r26655);
        double r26657 = 0.0;
        double r26658 = r26656 * r26657;
        double r26659 = r26651 - r26658;
        double r26660 = r26650 * r26650;
        double r26661 = r26657 * r26657;
        double r26662 = r26660 + r26661;
        double r26663 = r26659 / r26662;
        return r26663;
}

double f(double re, double im, double base) {
        double r26664 = im;
        double r26665 = re;
        double r26666 = atan2(r26664, r26665);
        double r26667 = base;
        double r26668 = log(r26667);
        double r26669 = r26666 / r26668;
        return r26669;
}

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

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

Reproduce

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