Average Error: 31.9 → 17.8
Time: 14.4s
Precision: 64
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -6312992236024163726688387878937257276604000:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(-\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\\ \mathbf{elif}\;re \le 1.949891623707017456131986292760721140859 \cdot 10^{80}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\sqrt{\frac{1}{\log 10}} \cdot \log re\right)\\ \end{array}\]
\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}
\begin{array}{l}
\mathbf{if}\;re \le -6312992236024163726688387878937257276604000:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(-\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\\

\mathbf{elif}\;re \le 1.949891623707017456131986292760721140859 \cdot 10^{80}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\

\mathbf{else}:\\
\;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\sqrt{\frac{1}{\log 10}} \cdot \log re\right)\\

\end{array}
double f(double re, double im) {
        double r41259 = re;
        double r41260 = r41259 * r41259;
        double r41261 = im;
        double r41262 = r41261 * r41261;
        double r41263 = r41260 + r41262;
        double r41264 = sqrt(r41263);
        double r41265 = log(r41264);
        double r41266 = 10.0;
        double r41267 = log(r41266);
        double r41268 = r41265 / r41267;
        return r41268;
}

double f(double re, double im) {
        double r41269 = re;
        double r41270 = -6.312992236024164e+42;
        bool r41271 = r41269 <= r41270;
        double r41272 = 1.0;
        double r41273 = 10.0;
        double r41274 = log(r41273);
        double r41275 = sqrt(r41274);
        double r41276 = r41272 / r41275;
        double r41277 = -1.0;
        double r41278 = r41277 / r41269;
        double r41279 = log(r41278);
        double r41280 = r41272 / r41274;
        double r41281 = sqrt(r41280);
        double r41282 = r41279 * r41281;
        double r41283 = -r41282;
        double r41284 = r41276 * r41283;
        double r41285 = 1.9498916237070175e+80;
        bool r41286 = r41269 <= r41285;
        double r41287 = r41269 * r41269;
        double r41288 = im;
        double r41289 = r41288 * r41288;
        double r41290 = r41287 + r41289;
        double r41291 = sqrt(r41290);
        double r41292 = log(r41291);
        double r41293 = r41292 * r41276;
        double r41294 = r41276 * r41293;
        double r41295 = log(r41269);
        double r41296 = r41281 * r41295;
        double r41297 = r41276 * r41296;
        double r41298 = r41286 ? r41294 : r41297;
        double r41299 = r41271 ? r41284 : r41298;
        return r41299;
}

Error

Bits error versus re

Bits error versus im

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if re < -6.312992236024164e+42

    1. Initial program 43.6

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt43.6

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow143.6

      \[\leadsto \frac{\log \color{blue}{\left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{1}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    5. Applied log-pow43.6

      \[\leadsto \frac{\color{blue}{1 \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    6. Applied times-frac43.6

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log 10}} \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}}\]
    7. Taylor expanded around -inf 11.2

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(-1 \cdot \left(\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\right)}\]
    8. Simplified11.2

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(-\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)}\]

    if -6.312992236024164e+42 < re < 1.9498916237070175e+80

    1. Initial program 22.9

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt22.9

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow122.9

      \[\leadsto \frac{\log \color{blue}{\left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{1}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    5. Applied log-pow22.9

      \[\leadsto \frac{\color{blue}{1 \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    6. Applied times-frac22.9

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log 10}} \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}}\]
    7. Using strategy rm
    8. Applied div-inv22.8

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)}\]

    if 1.9498916237070175e+80 < re

    1. Initial program 48.7

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt48.7

      \[\leadsto \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\color{blue}{\sqrt{\log 10} \cdot \sqrt{\log 10}}}\]
    4. Applied pow148.7

      \[\leadsto \frac{\log \color{blue}{\left({\left(\sqrt{re \cdot re + im \cdot im}\right)}^{1}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    5. Applied log-pow48.7

      \[\leadsto \frac{\color{blue}{1 \cdot \log \left(\sqrt{re \cdot re + im \cdot im}\right)}}{\sqrt{\log 10} \cdot \sqrt{\log 10}}\]
    6. Applied times-frac48.7

      \[\leadsto \color{blue}{\frac{1}{\sqrt{\log 10}} \cdot \frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\sqrt{\log 10}}}\]
    7. Using strategy rm
    8. Applied div-inv48.6

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)}\]
    9. Taylor expanded around inf 8.8

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(-1 \cdot \left(\log \left(\frac{1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\right)}\]
    10. Simplified8.8

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\sqrt{\frac{1}{\log 10}} \cdot \log re\right)}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification17.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -6312992236024163726688387878937257276604000:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(-\log \left(\frac{-1}{re}\right) \cdot \sqrt{\frac{1}{\log 10}}\right)\\ \mathbf{elif}\;re \le 1.949891623707017456131986292760721140859 \cdot 10^{80}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\sqrt{\frac{1}{\log 10}} \cdot \log re\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019351 
(FPCore (re im)
  :name "math.log10 on complex, real part"
  :precision binary64
  (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))