Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-

log2

Name: Anonymous 2018-10-20 0:57

Is there any simpler way to write log2?

def log2y(y,d=30):
if d < 1: return 0
z = y
m = 0
while z<2:
z *= z
m += 1
m1 = 1.0/(1<<m)
return m1 + m1*log2y(z/2,d-1)

def log2(x):
n = 0
t = x
while t>0: #count used bits
n += 1
t >>= 1
if x == 1<<n: return n
n -= 1
y = float(x)/(1<<n) #remove integer multiplier
z = log2y(y) #calculate fraction part
return n + z

def exp2(x):
if x == 0: return 1
p = int(x)
p0 = 1<<p
p1 = 1<<(p+1)
return p0 | int((p1-p0)*(x-p))

Name: Anonymous 2018-10-20 1:09

Can't find any log2 implementation online, but basic log uses some ieee754-related hacks:
https://android.googlesource.com/platform/bionic/+/ics-mr1-release/libm/src/e_logf.c

probably replacing log with some look-alike curve

Name: Anonymous 2018-10-20 1:30

FYL2X on Intel CPUs

Name: Anonymous 2018-10-20 3:04

Maybe useful
10/8 * 16 = 20
log2(10) +1 ~= log2(20)

Name: Anonymous 2018-10-20 3:11

so log2(x<<z) = log2(x) + z

Name: Anonymous 2018-10-20 6:02

Name: Anonymous 2018-10-20 12:41

>>5
x<<z = x*2^z

Name: Anonymous 2018-10-20 12:43

>>6
I love these cleans 90ies sites, that use only plain HTML. The only stuff missing is latex formatting.

Name: Anonymous 2018-10-20 17:33

now for ln

Name: Anonymous 2018-10-22 7:05

>>8
yes, this pleases my inner boomer

Name: Anonymous 2018-10-22 7:18

please my dubs

Don't change these.
Name: Email:
Entire Thread Thread List