def __init__(self, target, proposal, indicator=None, prealloc=0, save_target_values=False, rng=_np.random.mtrand): self.proposal = _cp(proposal) self.rng = rng self.target = _indmerge(target, indicator, -_np.inf) self.target_values = _History(1, prealloc) if save_target_values else None self.weights = _History(1, prealloc) self.samples = _History(proposal.dim, prealloc)
def __init__(self, target, proposal, start, indicator=None, prealloc=0, save_target_values=False, rng=_np.random.mtrand): # store input into instance self.current_point = _np.array(start, dtype=float) # call array constructor to make sure to have a copy self.samples = _History(len(self.current_point), prealloc) self.proposal = _cp(proposal) self.rng = rng self.target = _indmerge(target, indicator, -_np.inf) self.target_values = _History(1, prealloc) if save_target_values else None self.current_target_eval = self.target(self.current_point) if not _np.isfinite(self.current_target_eval): raise ValueError('``target(start)`` must evaluate to a finite value and ``indicator(start)`` must be ``True``')
def shape(self): dims = _cp(self._dims) return dims