Average Error: 31.6 → 0.4
Time: 59.8s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\]
\[\frac{1}{\log base} \cdot \log \left(\sqrt{re^2 + im^2}^*\right)\]
\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0}{\log base \cdot \log base + 0 \cdot 0}
\frac{1}{\log base} \cdot \log \left(\sqrt{re^2 + im^2}^*\right)
double f(double re, double im, double base) {
        double r761035 = re;
        double r761036 = r761035 * r761035;
        double r761037 = im;
        double r761038 = r761037 * r761037;
        double r761039 = r761036 + r761038;
        double r761040 = sqrt(r761039);
        double r761041 = log(r761040);
        double r761042 = base;
        double r761043 = log(r761042);
        double r761044 = r761041 * r761043;
        double r761045 = atan2(r761037, r761035);
        double r761046 = 0.0;
        double r761047 = r761045 * r761046;
        double r761048 = r761044 + r761047;
        double r761049 = r761043 * r761043;
        double r761050 = r761046 * r761046;
        double r761051 = r761049 + r761050;
        double r761052 = r761048 / r761051;
        return r761052;
}

double f(double re, double im, double base) {
        double r761053 = 1.0;
        double r761054 = base;
        double r761055 = log(r761054);
        double r761056 = r761053 / r761055;
        double r761057 = re;
        double r761058 = im;
        double r761059 = hypot(r761057, r761058);
        double r761060 = log(r761059);
        double r761061 = r761056 * r761060;
        return r761061;
}

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

    \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \log base + \tan^{-1}_* \frac{im}{re} \cdot 0}{\log base \cdot \log base + 0 \cdot 0}\]
  2. Simplified0.4

    \[\leadsto \color{blue}{\frac{\log \left(\sqrt{re^2 + im^2}^*\right)}{\log base}}\]
  3. Using strategy rm
  4. Applied clear-num0.4

    \[\leadsto \color{blue}{\frac{1}{\frac{\log base}{\log \left(\sqrt{re^2 + im^2}^*\right)}}}\]
  5. Using strategy rm
  6. Applied associate-/r/0.4

    \[\leadsto \color{blue}{\frac{1}{\log base} \cdot \log \left(\sqrt{re^2 + im^2}^*\right)}\]
  7. Final simplification0.4

    \[\leadsto \frac{1}{\log base} \cdot \log \left(\sqrt{re^2 + im^2}^*\right)\]

Reproduce

herbie shell --seed 2019119 +o rules:numerics
(FPCore (re im base)
  :name "math.log/2 on complex, real part"
  (/ (+ (* (log (sqrt (+ (* re re) (* im im)))) (log base)) (* (atan2 im re) 0)) (+ (* (log base) (log base)) (* 0 0))))