# Talk:Binary logarithm

WikiProject Mathematics (Rated GA-class, Low-importance)
This article is within the scope of WikiProject Mathematics, a collaborative effort to improve the coverage of Mathematics on Wikipedia. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.
Mathematics rating:
 GA Class
 Low Importance
Field: Analysis

## [Untitled]

Where did the algorithm given here come from? I would love to find an original reference for this. Kleg 22:45, 19 July 2006 (UTC)

Same here. I can sort of guess why it works (squaring the scaled input value corresponds to doubling the result), but I would love to see the actual maths behind it.

Math for the result is located at this url: http://en.literateprograms.org/Logarithm_Function_%28Python%29

${\displaystyle 2^{n}}$ not a function! A function has a domain, a range, and a graph!

## lg?

Where does the name lg come from? --Abdull (talk) 20:15, 24 July 2008 (UTC)

I also wonder. In all my books lb x is used.--MathFacts (talk) 20:26, 16 August 2009 (UTC)
lg = log10. the correct symbol for binary logarithm is lb = log2 — Preceding unsigned comment added by 140.180.255.232 (talk) 19:47, 24 August 2016 (UTC)
For values of correct meaning "recommended by a standards organization" rather than what people actually use, maybe. —David Eppstein (talk) 21:06, 24 August 2016 (UTC)

## Error in identity?

Isn't there an error in the identity given for integers?

It says:

${\displaystyle \lfloor \log _{2}(n)\rfloor =\lceil \log _{2}(n>>1)\rceil +1,{\mbox{where }}n\geq 1.}$

But surely it should be:

${\displaystyle \lfloor \log _{2}(n)\rfloor =\lceil \log _{2}((n>>1)+1)\rceil ,{\mbox{where }}n\geq 1.}$

? —Preceding unsigned comment added by 195.27.20.35 (talk) 12:05, 26 February 2010 (UTC)

## python example

Python example is clearly too complex and too long. 1exec1 (talk) 17:53, 24 April 2010 (UTC)

Then refer to the OLD python code, it is much simpler

```#!/usr/bin/python

from __future__ import division

def log2(X):
epsilon = 1.0/(10**12)
integer_value=0
while X < 1:
integer_value = integer_value - 1
X = X * 2
while X >= 2:
integer_value = integer_value + 1
X = X / 2
decfrac = 0.0
partial = 0.5
X=X*X
while partial > epsilon:
if X >= 2:
decfrac = decfrac + partial
X = X / 2
partial = partial / 2
X=X*X
return (integer_value + decfrac)

if __name__ == '__main__':
value = 4.5
print "     X  =",value
print "LOG2(X) =",log2(value)

# Sample output
#
#    \$ python log2.py
#         X  = 4.5
#    LOG2(X) = 2.16992500144
#
```

## C example

wouldn't it be nicer code to use

```while(n>>=1!=0)
++pos;
```

```if (n >= 1<<16) { n >>= 16; pos += 16; }
if (n >= 1<< 8) { n >>=  8; pos +=  8; }
if (n >= 1<< 4) { n >>=  4; pos +=  4; }
if (n >= 1<< 2) { n >>=  2; pos +=  2; }
if (n >= 1<< 1) {           pos +=  1; }
```

? -- 129.247.247.239 (talk) 11:53, 16 July 2010 (UTC)

Yes, I agree. The point of an article like this is to explain how a binary logarithm works, not to show some super-optimized and confusing C version. On the other hand, no one really writes anything in C anymore, unless it needs to run really fast... Moxfyre (ǝɹʎℲxoɯ | contrib) 15:28, 16 July 2010 (UTC)

## the notation lb is used without an introduction

Under "Information Theory" the notation lb rather than ld is suddenly used without explanation. Is this a typo? If not, perhaps it should say something like: lg, lx, and lb are sometimes used for base 2 logs.

## GA Review

Reviewer: Jfhutson (talk · contribs) 21:31, 28 December 2015 (UTC)

This looks like it's probably already at GA standards. Here are my comments:

• lead formula: specify that x is the binary log of n.
• Starting with five examples seems excessive.
• italicize the Elements
• "On this basis, Michael Stifel has been credited with publishing the first known table of binary logarithms, in 1544." Last comma not needed.