fix mass and off-by-one errors
This commit is contained in:
parent
a659679b6b
commit
d5647a0328
@ -417,8 +417,8 @@ mknew(fuzzy, function(x)
|
||||
local p = (x.p or fuzzy.p) & 0xffff
|
||||
x.mass = 0
|
||||
while p ~= 0 do
|
||||
x.mass += p & 0x8000
|
||||
p = p << 1
|
||||
x.mass += p & 1
|
||||
p = (p >>> 1) & 0xffff
|
||||
end
|
||||
end)
|
||||
|
||||
@ -427,7 +427,7 @@ function fuzzy:update()
|
||||
if (self.n < self.interval) return
|
||||
self.n = 0
|
||||
for i=1,self.tries do
|
||||
local b = 1 << rnd(15)
|
||||
local b = 1 << rnd(16)
|
||||
if b & self.p == 0 then
|
||||
if i == self.tries or not self.weight or self.mass <= self.weight then
|
||||
self.mass += 1
|
||||
|
Loading…
Reference in New Issue
Block a user