示例#1
0
 def __init__(self, a, b):
     assert isinstance(a, (list, tuple))
     assert isinstance(b, (list, tuple))
     assert len(a) == len(b)
     CompositeDistribution.__init__(
         self,
         [DrawFrom(random.beta, a=a_p, b=b_p) for (a_p, b_p) in zip(a, b)])
 def generate(self, box, n, sampling=None):
     if len(box) > 0:
         if is_io_process():
             if sampling is None:
                 sampling = UniformDistribution()
             elif isinstance(sampling, tuple):
                 assert len(sampling) == len(box)
                 sampling = CompositeDistribution(sampling)
             self._list = sampling.sample(box, n)
         self._list = is_io_process.mpi_comm.bcast(self._list, root=0)
     else:
         for i in range(n):
             self._list.append(tuple())
示例#3
0
    def generate(self, box, n, sampling=None):
        if len(box) > 0:
            if sampling is None:
                sampling = UniformDistribution()
            elif isinstance(sampling, tuple):
                assert len(sampling) == len(box)
                sampling = CompositeDistribution(sampling)

            def run_sampling():
                return sampling.sample(box, n)

            self._list = parallel_generate(run_sampling, self.mpi_comm)
        else:
            for i in range(n):
                self._list.append(tuple())