Skip to content

Commit deaa492

Browse files
committedJul 18, 2015
language: add scan iterators
1 parent 9e29a46 commit deaa492

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
 

Diff for: ‎artiq/language/scan.py

+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
from random import Random
2+
3+
4+
class LinearScan:
5+
def __init__(self, min, max, npoints):
6+
self.min = min
7+
self.max = max
8+
self.npoints = npoints
9+
10+
def _gen(self):
11+
r = self.max - self.min
12+
d = self.npoints - 1
13+
for i in range(self.npoints):
14+
yield r*i/d + self.min
15+
16+
def __iter__(self):
17+
return self._gen()
18+
19+
20+
class RandomScan:
21+
def __init__(self, min, max, npoints, seed=0):
22+
self.min = min
23+
self.max = max
24+
self.npoints = npoints
25+
self.seed = 0
26+
27+
def _gen(self):
28+
prng = Random(self.seed)
29+
r = self.max - self.min
30+
for i in range(self.npoints):
31+
yield prng.random()*r + self.min
32+
33+
def __iter__(self):
34+
return self._gen()

0 commit comments

Comments
 (0)
Please sign in to comment.