[parameterized] adding parameters in hierarchy, did not update higher siblings

This commit is contained in:
mzwiessele 2014-06-30 08:17:10 -07:00
parent 67620e47d0
commit cbcb0a9b99

View file

@ -124,17 +124,16 @@ class Parameterized(Parameterizable):
param.traverse_parents(visit, self) param.traverse_parents(visit, self)
param._parent_.remove_parameter(param) param._parent_.remove_parameter(param)
# make sure the size is set # make sure the size is set
if index is None: if index is None: start = self.size
self.constraints.update(param.constraints, self.size) else: start = sum(p.size for p in self.parameters[:index])
self.priors.update(param.priors, self.size)
self.parameters.append(param)
else:
start = sum(p.size for p in self.parameters[:index])
self.constraints.shift_right(start, param.size) self.constraints.shift_right(start, param.size)
self.priors.shift_right(start, param.size) self.priors.shift_right(start, param.size)
self.constraints.update(param.constraints, start) self.constraints.update(param.constraints, self.size)
self.priors.update(param.priors, start) self.priors.update(param.priors, self.size)
self.parameters.insert(index, param)
if index is None: self.parameters.append(param)
else: self.parameters.insert(index, param)
param.add_observer(self, self._pass_through_notify_observers, -np.inf) param.add_observer(self, self._pass_through_notify_observers, -np.inf)