Average Error: 31.4 → 0.4
Time: 4.0m
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{\log \left(\mathsf{hypot}\left(re, im\right)\right)}{\log base}\]
\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{\log \left(\mathsf{hypot}\left(re, im\right)\right)}{\log base}
double f(double re, double im, double base) {
        double r1291247 = re;
        double r1291248 = r1291247 * r1291247;
        double r1291249 = im;
        double r1291250 = r1291249 * r1291249;
        double r1291251 = r1291248 + r1291250;
        double r1291252 = sqrt(r1291251);
        double r1291253 = log(r1291252);
        double r1291254 = base;
        double r1291255 = log(r1291254);
        double r1291256 = r1291253 * r1291255;
        double r1291257 = atan2(r1291249, r1291247);
        double r1291258 = 0.0;
        double r1291259 = r1291257 * r1291258;
        double r1291260 = r1291256 + r1291259;
        double r1291261 = r1291255 * r1291255;
        double r1291262 = r1291258 * r1291258;
        double r1291263 = r1291261 + r1291262;
        double r1291264 = r1291260 / r1291263;
        return r1291264;
}

double f(double re, double im, double base) {
        double r1291265 = re;
        double r1291266 = im;
        double r1291267 = hypot(r1291265, r1291266);
        double r1291268 = log(r1291267);
        double r1291269 = base;
        double r1291270 = log(r1291269);
        double r1291271 = r1291268 / r1291270;
        return r1291271;
}

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

    \[\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(\mathsf{hypot}\left(re, im\right)\right)}{\log base}}\]
  3. Final simplification0.4

    \[\leadsto \frac{\log \left(\mathsf{hypot}\left(re, im\right)\right)}{\log base}\]

Reproduce

herbie shell --seed 2019135 +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))))