Average Error: 31.3 → 0.3
Time: 4.4s
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 r27406 = im;
        double r27407 = re;
        double r27408 = atan2(r27406, r27407);
        double r27409 = base;
        double r27410 = log(r27409);
        double r27411 = r27408 * r27410;
        double r27412 = r27407 * r27407;
        double r27413 = r27406 * r27406;
        double r27414 = r27412 + r27413;
        double r27415 = sqrt(r27414);
        double r27416 = log(r27415);
        double r27417 = 0.0;
        double r27418 = r27416 * r27417;
        double r27419 = r27411 - r27418;
        double r27420 = r27410 * r27410;
        double r27421 = r27417 * r27417;
        double r27422 = r27420 + r27421;
        double r27423 = r27419 / r27422;
        return r27423;
}

double f(double re, double im, double base) {
        double r27424 = im;
        double r27425 = re;
        double r27426 = atan2(r27424, r27425);
        double r27427 = base;
        double r27428 = log(r27427);
        double r27429 = r27426 / r27428;
        return r27429;
}

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

    \[\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 2019352 
(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))))