Average Error: 32.0 → 0.4
Time: 13.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}\]
\[\tan^{-1}_* \frac{im}{re} \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.0}{\log base \cdot \log base + 0.0 \cdot 0.0}
\tan^{-1}_* \frac{im}{re} \cdot \frac{1}{\log base}
double f(double re, double im, double base) {
        double r96818 = im;
        double r96819 = re;
        double r96820 = atan2(r96818, r96819);
        double r96821 = base;
        double r96822 = log(r96821);
        double r96823 = r96820 * r96822;
        double r96824 = r96819 * r96819;
        double r96825 = r96818 * r96818;
        double r96826 = r96824 + r96825;
        double r96827 = sqrt(r96826);
        double r96828 = log(r96827);
        double r96829 = 0.0;
        double r96830 = r96828 * r96829;
        double r96831 = r96823 - r96830;
        double r96832 = r96822 * r96822;
        double r96833 = r96829 * r96829;
        double r96834 = r96832 + r96833;
        double r96835 = r96831 / r96834;
        return r96835;
}

double f(double re, double im, double base) {
        double r96836 = im;
        double r96837 = re;
        double r96838 = atan2(r96836, r96837);
        double r96839 = 1.0;
        double r96840 = base;
        double r96841 = log(r96840);
        double r96842 = r96839 / r96841;
        double r96843 = r96838 * r96842;
        return r96843;
}

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 div-inv0.4

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

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

Reproduce

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