Average Error: 31.5 → 0.4
Time: 2.3m
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(\sqrt[3]{\mathsf{hypot}\left(re, im\right)} \cdot \left(\left(\sqrt[3]{\sqrt[3]{\mathsf{hypot}\left(re, im\right)}} \cdot \sqrt[3]{\sqrt[3]{\mathsf{hypot}\left(re, im\right)}}\right) \cdot \left(\sqrt[3]{\mathsf{hypot}\left(re, im\right)} \cdot \sqrt[3]{\sqrt[3]{\mathsf{hypot}\left(re, im\right)}}\right)\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(\sqrt[3]{\mathsf{hypot}\left(re, im\right)} \cdot \left(\left(\sqrt[3]{\sqrt[3]{\mathsf{hypot}\left(re, im\right)}} \cdot \sqrt[3]{\sqrt[3]{\mathsf{hypot}\left(re, im\right)}}\right) \cdot \left(\sqrt[3]{\mathsf{hypot}\left(re, im\right)} \cdot \sqrt[3]{\sqrt[3]{\mathsf{hypot}\left(re, im\right)}}\right)\right)\right)}{\log base}
double f(double re, double im, double base) {
        double r2197498 = re;
        double r2197499 = r2197498 * r2197498;
        double r2197500 = im;
        double r2197501 = r2197500 * r2197500;
        double r2197502 = r2197499 + r2197501;
        double r2197503 = sqrt(r2197502);
        double r2197504 = log(r2197503);
        double r2197505 = base;
        double r2197506 = log(r2197505);
        double r2197507 = r2197504 * r2197506;
        double r2197508 = atan2(r2197500, r2197498);
        double r2197509 = 0.0;
        double r2197510 = r2197508 * r2197509;
        double r2197511 = r2197507 + r2197510;
        double r2197512 = r2197506 * r2197506;
        double r2197513 = r2197509 * r2197509;
        double r2197514 = r2197512 + r2197513;
        double r2197515 = r2197511 / r2197514;
        return r2197515;
}

double f(double re, double im, double base) {
        double r2197516 = re;
        double r2197517 = im;
        double r2197518 = hypot(r2197516, r2197517);
        double r2197519 = cbrt(r2197518);
        double r2197520 = cbrt(r2197519);
        double r2197521 = r2197520 * r2197520;
        double r2197522 = r2197519 * r2197520;
        double r2197523 = r2197521 * r2197522;
        double r2197524 = r2197519 * r2197523;
        double r2197525 = log(r2197524);
        double r2197526 = base;
        double r2197527 = log(r2197526);
        double r2197528 = r2197525 / r2197527;
        return r2197528;
}

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

    \[\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. Using strategy rm
  4. Applied add-cube-cbrt0.4

    \[\leadsto \frac{\log \color{blue}{\left(\left(\sqrt[3]{\mathsf{hypot}\left(re, im\right)} \cdot \sqrt[3]{\mathsf{hypot}\left(re, im\right)}\right) \cdot \sqrt[3]{\mathsf{hypot}\left(re, im\right)}\right)}}{\log base}\]
  5. Using strategy rm
  6. Applied add-cube-cbrt0.4

    \[\leadsto \frac{\log \left(\left(\color{blue}{\left(\left(\sqrt[3]{\sqrt[3]{\mathsf{hypot}\left(re, im\right)}} \cdot \sqrt[3]{\sqrt[3]{\mathsf{hypot}\left(re, im\right)}}\right) \cdot \sqrt[3]{\sqrt[3]{\mathsf{hypot}\left(re, im\right)}}\right)} \cdot \sqrt[3]{\mathsf{hypot}\left(re, im\right)}\right) \cdot \sqrt[3]{\mathsf{hypot}\left(re, im\right)}\right)}{\log base}\]
  7. Applied associate-*l*0.4

    \[\leadsto \frac{\log \left(\color{blue}{\left(\left(\sqrt[3]{\sqrt[3]{\mathsf{hypot}\left(re, im\right)}} \cdot \sqrt[3]{\sqrt[3]{\mathsf{hypot}\left(re, im\right)}}\right) \cdot \left(\sqrt[3]{\sqrt[3]{\mathsf{hypot}\left(re, im\right)}} \cdot \sqrt[3]{\mathsf{hypot}\left(re, im\right)}\right)\right)} \cdot \sqrt[3]{\mathsf{hypot}\left(re, im\right)}\right)}{\log base}\]
  8. Final simplification0.4

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

Reproduce

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