Average Error: 32.0 → 0.6
Time: 4.2s
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{\frac{1}{\log base}}{\frac{1}{\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.0}{\log base \cdot \log base + 0.0 \cdot 0.0}
\frac{\frac{1}{\log base}}{\frac{1}{\tan^{-1}_* \frac{im}{re}}}
double f(double re, double im, double base) {
        double r83496 = im;
        double r83497 = re;
        double r83498 = atan2(r83496, r83497);
        double r83499 = base;
        double r83500 = log(r83499);
        double r83501 = r83498 * r83500;
        double r83502 = r83497 * r83497;
        double r83503 = r83496 * r83496;
        double r83504 = r83502 + r83503;
        double r83505 = sqrt(r83504);
        double r83506 = log(r83505);
        double r83507 = 0.0;
        double r83508 = r83506 * r83507;
        double r83509 = r83501 - r83508;
        double r83510 = r83500 * r83500;
        double r83511 = r83507 * r83507;
        double r83512 = r83510 + r83511;
        double r83513 = r83509 / r83512;
        return r83513;
}

double f(double re, double im, double base) {
        double r83514 = 1.0;
        double r83515 = base;
        double r83516 = log(r83515);
        double r83517 = r83514 / r83516;
        double r83518 = im;
        double r83519 = re;
        double r83520 = atan2(r83518, r83519);
        double r83521 = r83514 / r83520;
        double r83522 = r83517 / r83521;
        return r83522;
}

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 32.0

    \[\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. Using strategy rm
  4. Applied clear-num0.5

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

    \[\leadsto \frac{1}{\color{blue}{\log base \cdot \frac{1}{\tan^{-1}_* \frac{im}{re}}}}\]
  7. Applied associate-/r*0.6

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

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

Reproduce

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