def __init__()

in vihds/parameters.py [0:0]


    def __init__(self, name, class_type, defaults, conditioning=None):
        self.name = name
        self.class_type = class_type
        self.defaults = defaults
        self.conditioning = conditioning
        self.other_params = {}

        if class_type == TfNormal or class_type == TfLogNormal:
            self.nbr_free_params = 2
            self.free_params = ["mu", "log_prec"]
            self.params = ["mu", "prec"]
            self.free_to_constrained = ["identity", "positive"]

            mu_dependency = None
            prec_dependency = None

            init_mu = 0.0
            if "mu" in defaults:
                if defaults["prec"].__class__ == str:
                    print("found dependency for %s.mu = %s" % (self.name, defaults["mu"]))
                    mu_dependency = defaults["mu"]
                else:
                    init_mu = defaults["mu"]

            init_prec = 1.0
            init_log_prec = 0.0
            if "prec" in defaults:
                if (defaults["prec"] is not None) and (defaults["prec"].__class__ != str):
                    init_prec = defaults["prec"]
                    init_log_prec = np.log(init_prec)
                elif defaults["prec"].__class__ == str:
                    print("found dependency for %s.prec = %s" % (self.name, defaults["prec"]))
                    prec_dependency = defaults["prec"]
            elif "sigma" in defaults:
                if (defaults["sigma"] is not None) and (defaults["sigma"].__class__ != str):
                    init_prec = 1.0 / np.square(defaults["sigma"])
                    init_log_prec = np.log(init_prec)
            else:
                print("WARNING: using *very* default params for %s" % (str(class_type)))

            self.init_params = [init_mu, init_prec]
            self.init_free_params = [init_mu, init_log_prec]
            self.dependencies = [mu_dependency, prec_dependency]

        elif class_type == TfTruncatedNormal:
            self.nbr_free_params = 2
            self.free_params = ["mu", "log_prec"]
            self.params = ["mu", "prec"]
            self.free_to_constrained = ["identity", "positive"]
            self.other_param_names = ["a", "b"]

            mu_dependency = None
            prec_dependency = None

            init_mu = 0.0
            if "mu" in defaults:
                if defaults["prec"].__class__ == str:
                    print("found dependency for %s.mu = %s" % (self.name, defaults["mu"]))
                    mu_dependency = defaults["mu"]
                else:
                    init_mu = defaults["mu"]

            init_prec = 1.0
            init_log_prec = 0.0
            if "prec" in defaults:
                if (defaults["prec"] is not None) and (defaults["prec"].__class__ != str):
                    init_prec = defaults["prec"]
                    init_log_prec = np.log(init_prec)
                elif defaults["prec"].__class__ == str:
                    print("found dependency for %s.prec = %s" % (self.name, defaults["prec"]))
                    prec_dependency = defaults["prec"]
            elif "sigma" in defaults:
                if (defaults["sigma"] is not None) and (defaults["sigma"].__class__ != str):
                    init_prec = 1.0 / np.square(defaults["sigma"])
                    init_log_prec = np.log(init_prec)
            else:
                print("WARNING: using *very* default params for %s" % (str(class_type)))

            self.init_params = [init_mu, init_prec]
            self.init_free_params = [init_mu, init_log_prec]
            self.dependencies = [mu_dependency, prec_dependency]

            self.other_params["a"] = default_get_value(defaults, "a", -np.inf)
            self.other_params["b"] = default_get_value(defaults, "b", -np.inf)

        elif class_type == TfKumaraswamy:
            self.nbr_free_params = 2
            self.free_params = ["log_a", "log_b"]
            self.params = ["a", "b"]
            self.free_to_constrained = ["positive", "positive"]
            self.other_param_names = ["zmin", "zmax"]

            # init_zmin = 0.0
            # init_zmax = 1.0

            a_dependency = None
            b_dependency = None

            init_a = None
            init_log_a = None
            if "a" in defaults:
                if (defaults["a"] is not None) and (defaults["a"].__class__ != str):
                    init_a = defaults["a"]
                    init_log_a = np.log(init_a)
                elif defaults["a"].__class__ == str:
                    print("found dependency for %s.a = %s" % (self.name, defaults["a"]))
                    b_dependency = defaults["a"]
            else:
                raise NotImplementedError("Missing a")

            init_b = None
            init_log_b = None
            if "b" in defaults:
                if (defaults["b"] is not None) and (defaults["a"].__class__ != str):
                    init_b = defaults["b"]
                    init_log_b = np.log(init_b)
                elif defaults["b"].__class__ == str:
                    print("found dependency for %s.b = %s" % (self.name, defaults["b"]))
                    b_dependency = defaults["b"]
            else:
                raise NotImplementedError("Missing b")

            self.init_params = [init_a, init_b]
            self.init_free_params = [init_log_a, init_log_b]
            self.dependencies = [a_dependency, b_dependency]

            self.other_params["zmin"] = default_get_value(defaults, "zmin", 0.0)
            self.other_params["zmax"] = default_get_value(defaults, "zmax", 1.0)
        elif class_type == TfConstant:
            self.nbr_free_params = 1
            self.free_params = ["value"]
            self.params = ["value"]
            self.free_to_constrained = ["identity"]

            value_dependency = None

            init_value = 0.0
            if "value" in defaults:
                init_value = defaults["value"]

            self.init_params = [init_value]
            self.init_free_params = [init_value]
            self.dependencies = [value_dependency]
        else:
            raise NotImplementedError("unknown class type %s" % (str(class_type)))