Average Error: 31.3 → 17.5
Time: 23.7s
Precision: 64
Internal Precision: 128
\[\frac{\log \left(\sqrt{re \cdot re + im \cdot im}\right)}{\log 10}\]
\[\begin{array}{l} \mathbf{if}\;re \le -5.087015824912348 \cdot 10^{+107}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(-re\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\ \mathbf{elif}\;re \le 7.158781234828456 \cdot 10^{-138}:\\ \;\;\;\;\left(\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right) \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right)\right) \cdot \frac{1}{\sqrt{\log 10}}\\ \mathbf{elif}\;re \le 1.1925302764880028 \cdot 10^{-107}:\\ \;\;\;\;\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \left(\log im \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)\right) \cdot \frac{1}{\sqrt{\log 10}}\\ \mathbf{elif}\;re \le 4.3619401585985797 \cdot 10^{+95}:\\ \;\;\;\;\left(\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right) \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right)\right) \cdot \frac{1}{\sqrt{\log 10}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log re \cdot \frac{1}{\sqrt{\log 10}}\right)\\ \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 4 regimes
  2. if re < -5.087015824912348e+107

    1. Initial program 51.8

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

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

      \[\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-pow51.8

      \[\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-frac51.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-inv51.7

      \[\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 \left(\log \color{blue}{\left(-1 \cdot re\right)} \cdot \frac{1}{\sqrt{\log 10}}\right)\]
    10. Simplified8.8

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

    if -5.087015824912348e+107 < re < 7.158781234828456e-138 or 1.1925302764880028e-107 < re < 4.3619401585985797e+95

    1. Initial program 21.4

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

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

      \[\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-pow21.4

      \[\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-frac21.3

      \[\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-inv21.2

      \[\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. Using strategy rm
    10. Applied add-sqr-sqrt21.2

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \color{blue}{\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)}\right)\]
    11. Applied associate-*r*21.3

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \color{blue}{\left(\left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right) \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)}\]
    12. Using strategy rm
    13. Applied associate-*l*21.2

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

    if 7.158781234828456e-138 < re < 1.1925302764880028e-107

    1. Initial program 20.3

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

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

      \[\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-pow20.3

      \[\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-frac20.3

      \[\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-inv20.1

      \[\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. Using strategy rm
    10. Applied add-sqr-sqrt20.1

      \[\leadsto \frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(\sqrt{re \cdot re + im \cdot im}\right) \cdot \color{blue}{\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)}\right)\]
    11. Applied associate-*r*20.2

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

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

    if 4.3619401585985797e+95 < re

    1. Initial program 50.3

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

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

      \[\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-pow50.3

      \[\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-frac50.3

      \[\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-inv50.2

      \[\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 9.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;re \le -5.087015824912348 \cdot 10^{+107}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log \left(-re\right) \cdot \frac{1}{\sqrt{\log 10}}\right)\\ \mathbf{elif}\;re \le 7.158781234828456 \cdot 10^{-138}:\\ \;\;\;\;\left(\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right) \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right)\right) \cdot \frac{1}{\sqrt{\log 10}}\\ \mathbf{elif}\;re \le 1.1925302764880028 \cdot 10^{-107}:\\ \;\;\;\;\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \left(\log im \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right)\right) \cdot \frac{1}{\sqrt{\log 10}}\\ \mathbf{elif}\;re \le 4.3619401585985797 \cdot 10^{+95}:\\ \;\;\;\;\left(\left(\sqrt{\frac{1}{\sqrt{\log 10}}} \cdot \sqrt{\frac{1}{\sqrt{\log 10}}}\right) \cdot \log \left(\sqrt{im \cdot im + re \cdot re}\right)\right) \cdot \frac{1}{\sqrt{\log 10}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\sqrt{\log 10}} \cdot \left(\log re \cdot \frac{1}{\sqrt{\log 10}}\right)\\ \end{array}\]

Reproduce

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

Details

Time bar (total: 21.5s)Debug log

sample41.0ms

Algorithm
intervals

simplify12.0ms

Counts
1 → 1
Calls

1 calls. Slowest were:

11.0ms
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10))

prune12.0ms

Pruning

1 alts after pruning (1 fresh and 0 done)

Merged error: 32.6b

localize34.0ms

Local error

Found 3 expressions with local error:

31.1b
(sqrt (+ (* re re) (* im im)))
0.6b
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10))
0.0b
(+ (* re re) (* im im))

rewrite14.0ms

Algorithm
rewrite-expression-head
Counts
3 → 62
Calls

3 calls. Slowest were:

9.0ms
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10))
2.0ms
(+ (* re re) (* im im))
2.0ms
(sqrt (+ (* re re) (* im im)))

series201.0ms

Counts
3 → 9
Calls

3 calls. Slowest were:

147.0ms
(/ (log (sqrt (+ (* re re) (* im im)))) (log 10))
27.0ms
(+ (* re re) (* im im))
26.0ms
(sqrt (+ (* re re) (* im im)))

simplify900.0ms

Counts
55 → 71
Calls

55 calls. Slowest were:

141.0ms
(sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))
133.0ms
(/ (* (* (log (sqrt (+ (* re re) (* im im)))) (log (sqrt (+ (* re re) (* im im))))) (log (sqrt (+ (* re re) (* im im))))) (* (* (log 10) (log 10)) (log 10)))
104.0ms
(/ (log (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))) (log 10))

prune865.0ms

Pruning

11 alts after pruning (11 fresh and 0 done)

Merged error: 7.1b

localize19.0ms

Local error

Found 4 expressions with local error:

31.1b
(sqrt (+ (* re re) (* im im)))
0.4b
(/ (log (sqrt (+ (* re re) (* im im)))) (sqrt (log 10)))
0.2b
(* (/ 1 (sqrt (log 10))) (/ (log (sqrt (+ (* re re) (* im im)))) (sqrt (log 10))))
0.0b
(+ (* re re) (* im im))

rewrite23.0ms

Algorithm
rewrite-expression-head
Counts
4 → 136
Calls

4 calls. Slowest were:

9.0ms
(/ (log (sqrt (+ (* re re) (* im im)))) (sqrt (log 10)))
8.0ms
(* (/ 1 (sqrt (log 10))) (/ (log (sqrt (+ (* re re) (* im im)))) (sqrt (log 10))))
2.0ms
(+ (* re re) (* im im))

series385.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

199.0ms
(/ (log (sqrt (+ (* re re) (* im im)))) (sqrt (log 10)))
130.0ms
(* (/ 1 (sqrt (log 10))) (/ (log (sqrt (+ (* re re) (* im im)))) (sqrt (log 10))))
33.0ms
(sqrt (+ (* re re) (* im im)))
24.0ms
(+ (* re re) (* im im))

simplify2.5s

Counts
138 → 148
Calls

138 calls. Slowest were:

346.0ms
(* (* (* (/ 1 (sqrt (log 10))) (/ 1 (sqrt (log 10)))) (/ 1 (sqrt (log 10)))) (* (* (/ (log (sqrt (+ (* re re) (* im im)))) (sqrt (log 10))) (/ (log (sqrt (+ (* re re) (* im im)))) (sqrt (log 10)))) (/ (log (sqrt (+ (* re re) (* im im)))) (sqrt (log 10)))))
155.0ms
(* (* (* (/ 1 (sqrt (log 10))) (/ 1 (sqrt (log 10)))) (/ 1 (sqrt (log 10)))) (/ (* (* (log (sqrt (+ (* re re) (* im im)))) (log (sqrt (+ (* re re) (* im im))))) (log (sqrt (+ (* re re) (* im im))))) (* (* (sqrt (log 10)) (sqrt (log 10))) (sqrt (log 10)))))
151.0ms
(/ (log (sqrt (- (* (* re re) (* re re)) (* (* im im) (* im im))))) (sqrt (log 10)))

prune2.1s

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 7.0b

localize13.0ms

Local error

Found 4 expressions with local error:

31.1b
(sqrt (+ (* re re) (* im im)))
0.2b
(* (/ 1 (sqrt (log 10))) (* (log (sqrt (+ (* re re) (* im im)))) (/ 1 (sqrt (log 10)))))
0.2b
(* (log (sqrt (+ (* re re) (* im im)))) (/ 1 (sqrt (log 10))))
0.0b
(+ (* re re) (* im im))

rewrite45.0ms

Algorithm
rewrite-expression-head
Counts
4 → 76
Calls

4 calls. Slowest were:

24.0ms
(* (/ 1 (sqrt (log 10))) (* (log (sqrt (+ (* re re) (* im im)))) (/ 1 (sqrt (log 10)))))
11.0ms
(* (log (sqrt (+ (* re re) (* im im)))) (/ 1 (sqrt (log 10))))
4.0ms
(+ (* re re) (* im im))

series416.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

191.0ms
(* (/ 1 (sqrt (log 10))) (* (log (sqrt (+ (* re re) (* im im)))) (/ 1 (sqrt (log 10)))))
176.0ms
(* (log (sqrt (+ (* re re) (* im im)))) (/ 1 (sqrt (log 10))))
33.0ms
(sqrt (+ (* re re) (* im im)))
15.0ms
(+ (* re re) (* im im))

simplify2.8s

Counts
51 → 88
Calls

51 calls. Slowest were:

512.0ms
(* (* (* (/ 1 (sqrt (log 10))) (/ 1 (sqrt (log 10)))) (/ 1 (sqrt (log 10)))) (* (* (* (log (sqrt (+ (* re re) (* im im)))) (/ 1 (sqrt (log 10)))) (* (log (sqrt (+ (* re re) (* im im)))) (/ 1 (sqrt (log 10))))) (* (log (sqrt (+ (* re re) (* im im)))) (/ 1 (sqrt (log 10))))))
439.0ms
(* (* (* (log (sqrt (+ (* re re) (* im im)))) (log (sqrt (+ (* re re) (* im im))))) (log (sqrt (+ (* re re) (* im im))))) (* (* (/ 1 (sqrt (log 10))) (/ 1 (sqrt (log 10)))) (/ 1 (sqrt (log 10)))))
308.0ms
(* (* (* (/ 1 (sqrt (log 10))) (/ 1 (sqrt (log 10)))) (/ 1 (sqrt (log 10)))) (* (* (* (log (sqrt (+ (* re re) (* im im)))) (log (sqrt (+ (* re re) (* im im))))) (log (sqrt (+ (* re re) (* im im))))) (* (* (/ 1 (sqrt (log 10))) (/ 1 (sqrt (log 10)))) (/ 1 (sqrt (log 10))))))

prune1.2s

Pruning

13 alts after pruning (13 fresh and 0 done)

Merged error: 6.9b

localize14.0ms

Local error

Found 4 expressions with local error:

31.1b
(sqrt (+ (* re re) (* im im)))
0.3b
(* (log (sqrt (+ (* re re) (* im im)))) (sqrt (/ 1 (sqrt (log 10)))))
0.2b
(* (* (log (sqrt (+ (* re re) (* im im)))) (sqrt (/ 1 (sqrt (log 10))))) (sqrt (/ 1 (sqrt (log 10)))))
0.2b
(* (/ 1 (sqrt (log 10))) (* (* (log (sqrt (+ (* re re) (* im im)))) (sqrt (/ 1 (sqrt (log 10))))) (sqrt (/ 1 (sqrt (log 10))))))

rewrite67.0ms

Algorithm
rewrite-expression-head
Counts
4 → 95
Calls

4 calls. Slowest were:

33.0ms
(* (/ 1 (sqrt (log 10))) (* (* (log (sqrt (+ (* re re) (* im im)))) (sqrt (/ 1 (sqrt (log 10))))) (sqrt (/ 1 (sqrt (log 10))))))
22.0ms
(* (* (log (sqrt (+ (* re re) (* im im)))) (sqrt (/ 1 (sqrt (log 10))))) (sqrt (/ 1 (sqrt (log 10)))))
8.0ms
(* (log (sqrt (+ (* re re) (* im im)))) (sqrt (/ 1 (sqrt (log 10)))))

series700.0ms

Counts
4 → 12
Calls

4 calls. Slowest were:

308.0ms
(* (log (sqrt (+ (* re re) (* im im)))) (sqrt (/ 1 (sqrt (log 10)))))
201.0ms
(* (* (log (sqrt (+ (* re re) (* im im)))) (sqrt (/ 1 (sqrt (log 10))))) (sqrt (/ 1 (sqrt (log 10)))))
160.0ms
(* (/ 1 (sqrt (log 10))) (* (* (log (sqrt (+ (* re re) (* im im)))) (sqrt (/ 1 (sqrt (log 10))))) (sqrt (/ 1 (sqrt (log 10))))))
31.0ms
(sqrt (+ (* re re) (* im im)))

simplify4.6s

Counts
74 → 107
Calls

74 calls. Slowest were:

637.0ms
(* (* (* (/ 1 (sqrt (log 10))) (/ 1 (sqrt (log 10)))) (/ 1 (sqrt (log 10)))) (* (* (* (* (log (sqrt (+ (* re re) (* im im)))) (sqrt (/ 1 (sqrt (log 10))))) (sqrt (/ 1 (sqrt (log 10))))) (* (* (log (sqrt (+ (* re re) (* im im)))) (sqrt (/ 1 (sqrt (log 10))))) (sqrt (/ 1 (sqrt (log 10)))))) (* (* (log (sqrt (+ (* re re) (* im im)))) (sqrt (/ 1 (sqrt (log 10))))) (sqrt (/ 1 (sqrt (log 10)))))))
386.0ms
(+ (log (/ 1 (sqrt (log 10)))) (+ (log (* (log (sqrt (+ (* re re) (* im im)))) (sqrt (/ 1 (sqrt (log 10)))))) (log (sqrt (/ 1 (sqrt (log 10)))))))
352.0ms
(* (* (* (log (sqrt (+ (* re re) (* im im)))) (log (sqrt (+ (* re re) (* im im))))) (log (sqrt (+ (* re re) (* im im))))) (* (* (sqrt (/ 1 (sqrt (log 10)))) (sqrt (/ 1 (sqrt (log 10))))) (sqrt (/ 1 (sqrt (log 10))))))

prune1.4s

Pruning

14 alts after pruning (14 fresh and 0 done)

Merged error: 6.9b

regimes1.4s

Accuracy

57.9% (10.0b remaining)

Error of 17.5b against oracle of 7.5b and baseline of 31.2b

bsearch280.0ms

end0.0ms

sample1.5s

Algorithm
intervals