Average Error: 31.1 → 0.3
Time: 1.1m
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{\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}{\log base \cdot \log base + 0 \cdot 0}
\frac{\tan^{-1}_* \frac{im}{re}}{\log base}
double f(double re, double im, double base) {
        double r2174630 = im;
        double r2174631 = re;
        double r2174632 = atan2(r2174630, r2174631);
        double r2174633 = base;
        double r2174634 = log(r2174633);
        double r2174635 = r2174632 * r2174634;
        double r2174636 = r2174631 * r2174631;
        double r2174637 = r2174630 * r2174630;
        double r2174638 = r2174636 + r2174637;
        double r2174639 = sqrt(r2174638);
        double r2174640 = log(r2174639);
        double r2174641 = 0.0;
        double r2174642 = r2174640 * r2174641;
        double r2174643 = r2174635 - r2174642;
        double r2174644 = r2174634 * r2174634;
        double r2174645 = r2174641 * r2174641;
        double r2174646 = r2174644 + r2174645;
        double r2174647 = r2174643 / r2174646;
        return r2174647;
}

double f(double re, double im, double base) {
        double r2174648 = im;
        double r2174649 = re;
        double r2174650 = atan2(r2174648, r2174649);
        double r2174651 = base;
        double r2174652 = log(r2174651);
        double r2174653 = r2174650 / r2174652;
        return r2174653;
}

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

    \[\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 *-un-lft-identity0.4

    \[\leadsto \color{blue}{\left(1 \cdot \tan^{-1}_* \frac{im}{re}\right)} \cdot \frac{1}{\log base}\]
  7. Applied associate-*l*0.4

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

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

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

Reproduce

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