class Parameter(object): """A Parameter is the basic Parameter going into Fit Model. The Parameter holds many attributes: value, vary, max_value, min_value. Note that constraints are set elsewhere (with Larch DefinedVariables) The value and min/max values will be set to floats. """ def __init__(self, name=None, value=None, vary=True, min=None, max=None, expr=None, _larch=None, **kws): self.name = name self.value = value self.init_value = value self.min = min self.max = max self.vary = vary self.expr = expr self.stderr = None self.correl = None self.defvar = None if self.expr is not None and _larch is not None: self.defvar = DefinedVariable(self.expr, _larch=_larch) self.vary = False self.value = self.defvar.evaluate() def __repr__(self): s = [] if self.name is not None: s.append("'%s'" % self.name) val = repr(self.value) if self.vary and self.stderr is not None: val = "value=%s +/- %.3g" % (repr(self.value), self.stderr) elif not self.vary: val = "value=%s (fixed)" % (repr(self.value)) s.append(val) s.append("bounds=[%s:%s]" % (repr(self.min), repr(self.max))) if self.expr is not None: s.append("expr='%s'" % (self.expr)) return "<Parameter %s>" % ', '.join(s)
class Parameter(object): """A Parameter is the basic Parameter going into Fit Model. The Parameter holds many attributes: value, vary, max_value, min_value. Note that constraints are set elsewhere (with Larch DefinedVariables) The value and min/max values will be set to floats. """ def __init__(self, name=None, value=None, vary=True, min=None, max=None, expr=None, _larch=None, **kws): self.name = name self.value = value self.init_value = value self.min = min self.max = max self.vary = vary self.expr = expr self.stderr = None self.correl = None self.defvar = None if self.expr is not None and _larch is not None: self.defvar = DefinedVariable(self.expr, _larch=_larch) self.vary = False self.value = self.defvar.evaluate() def __repr__(self): s = [] if self.name is not None: s.append("'%s'" % self.name) val = repr(self.value) if self.vary and self.stderr is not None: val = "value=%s +/- %.3g" % (repr(self.value), self.stderr) elif not self.vary: val = "value=%s (fixed)" % (repr(self.value)) s.append(val) s.append("bounds=[%s:%s]" % (repr(self.min), repr(self.max))) if self.expr is not None: s.append("expr='%s'" % (self.expr)) return "<Parameter %s>" % ', '.join(s)