Skip to content

Commit

Permalink
language: add scan iterators
Browse files Browse the repository at this point in the history
  • Loading branch information
sbourdeauducq committed Jul 18, 2015
1 parent 9e29a46 commit deaa492
Showing 1 changed file with 34 additions and 0 deletions.
34 changes: 34 additions & 0 deletions artiq/language/scan.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
from random import Random


class LinearScan:
def __init__(self, min, max, npoints):
self.min = min
self.max = max
self.npoints = npoints

def _gen(self):
r = self.max - self.min
d = self.npoints - 1
for i in range(self.npoints):
yield r*i/d + self.min

def __iter__(self):
return self._gen()


class RandomScan:
def __init__(self, min, max, npoints, seed=0):
self.min = min
self.max = max
self.npoints = npoints
self.seed = 0

def _gen(self):
prng = Random(self.seed)
r = self.max - self.min
for i in range(self.npoints):
yield prng.random()*r + self.min

def __iter__(self):
return self._gen()

0 comments on commit deaa492

Please sign in to comment.