Average Error: 30.4 → 17.0
Time: 31.0s
Precision: 64
Internal Precision: 576
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -4.381761495704048 \cdot 10^{+38}:\\ \;\;\;\;\frac{-\log \left(\frac{-1}{re}\right)}{\log 10}\\ \mathbf{elif}\;re \le 5.379161096589616 \cdot 10^{+94}:\\ \;\;\;\;\frac{\log \left(\sqrt{\sqrt[3]{im \cdot im + re \cdot re}} \cdot \left|\sqrt[3]{im \cdot im + re \cdot re}\right|\right)}{\log 10}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log re}{\log 10}\\ \end{array}\]

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 < -4.381761495704048e+38

    1. Initial program 41.5

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Taylor expanded around -inf 12.2

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

    if -4.381761495704048e+38 < re < 5.379161096589616e+94

    1. Initial program 21.1

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

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

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

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

    if 5.379161096589616e+94 < re

    1. Initial program 48.5

      \[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
    2. Taylor expanded around inf 8.8

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

      \[\leadsto \color{blue}{\frac{\log re}{\log 10}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification17.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -4.381761495704048 \cdot 10^{+38}:\\ \;\;\;\;\frac{-\log \left(\frac{-1}{re}\right)}{\log 10}\\ \mathbf{elif}\;re \le 5.379161096589616 \cdot 10^{+94}:\\ \;\;\;\;\frac{\log \left(\sqrt{\sqrt[3]{im \cdot im + re \cdot re}} \cdot \left|\sqrt[3]{im \cdot im + re \cdot re}\right|\right)}{\log 10}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log re}{\log 10}\\ \end{array}\]

Runtime

Time bar (total: 31.0s)Debug logProfile

BaselineHerbieOracleSpan%
Regimes30.417.07.123.357.6%
herbie shell --seed 2018296 
(FPCore (re im)
  :name "math.log10 on complex, real part"
  (/ (log (sqrt (+ (* re re) (* im im)))) (log 10)))