-
Notifications
You must be signed in to change notification settings - Fork 0
/
loginterval.py
35 lines (30 loc) · 921 Bytes
/
loginterval.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Richard Darst, July 2011
from math import log, exp
class LogInterval(object):
"""
interval - how many
"""
# How many
interval = 10
def __init__(self, interval=10, number=10, initial=1,
low=None, high=None):
self.interval = interval
self.initial = initial
self.number = number
#self.every = interval
self.expConstant = exp(log(interval) / number)
def value(self, index):
return self.initial * self.expConstant**index
def index(self, value):
return log(value/self.initial) / (log(self.interval)/self.number)
def iter(start, maxValue=None):
index = startAt
while True:
value = self.value(index)
yield value
index += 1
if maxValue is not None and maxValue > index :
break
if __name__ == "__main__":
# add tests here
pass