Phew! The only difference I can find between +0.2Ni's and 1.x's infinite growth detection is the extra z's. To fix that, just replace the powerlyse() function in +0.2Ni with this version (with extra z's inserted):A for awesome wrote:I'm sorry about that. I had no idea that there was any bug in the infinite-growth detection; I tried to paste all changes between 1.x from 0.x when I made +0.2Ni, but it appears I missed something. What is the bug, anyway?calcyman wrote:Erm... why is this called z_LINEAR rather than zz_LINEAR?
https://catagolue.appspot.com/object/z_ ... 3678s34678
This has the worrying implication that +0.*i is actually forked from an older (buggier) version of apgsearch instead of the latest version.
Code: Select all
def powerlyse(stepsize, numsteps, ruletype):
if ruletype:
g.setalgo("HashLife")
else:
g.setalgo("RuleLoader")
g.setbase(2)
g.setstep(stepsize)
poplist = [0]*numsteps
poplist[0] = int(g.getpop())
pointlist = []
for i in xrange(1, numsteps, 1):
g.step()
poplist[i] = int(g.getpop()) + poplist[i-1]
if (i % 50 == 0):
g.fit()
g.update()
if (i > numsteps/2):
pointlist.append((math.log(i),math.log(poplist[i]+1.0)))
power = regress(pointlist)
if (power < 1.10):
return "unidentified"
elif (power < 1.65):
return "zz_REPLICATOR"
elif (power < 2.05):
return "zz_LINEAR"
elif (power < 2.8):
return "zz_EXPLOSIVE"
else:
return "zz_QUADRATIC"