# Path: reggie/core/priors.py
# PRIORS = dict()
# 
# Path: reggie/core/domains.py
# REAL = 'real'
# 
# Path: reggie/core/domains.py
# BOUNDS = {
#     REAL: (-np.inf, np.inf),
#     POSITIVE: (EPSILON, np.inf)
# }
# 
# TRANSFORMS = {
#     REAL: Identity(),
#     POSITIVE: Log()
# }


import numpy as np
import copy
import tabulate
import warnings
from collections import OrderedDict
from .priors import PRIORS
from .domains import REAL
from .domains import BOUNDS, TRANSFORMS

    def set_value(self, theta, transform=False):
        """
        Set the parameters to values given by the vector `theta`. If
        `transform` is true, then `theta` should lie in the transformed space
        and hence the parameters will be set to the inverse transform of
        `theta`.
        """
        # transform the parameters if necessary and ensure that they lie in the
        # correct domain (here we're using the transform as a domain
        # specification, although we may want to separate these later).
        if transform:
            theta = self.transform.get_inverse(theta)

        if _outbounds(self.bounds, theta):
            raise ValueError('value lies outside the parameter\'s bounds')

        self.value.flat[:] = theta

    def set_prior(self, prior, *args, **kwargs):
        """
        Set the prior of the parameter object. This should be given as a string
        identifier and arguments corresponding to fixed hyperparameters of the
        prior.
        """
        if prior is None:
            self.prior = prior
            self.bounds = BOUNDS[self.domain]

        else:

# Path: reggie/core/priors.py
# PRIORS = dict()
# 
# Path: reggie/core/domains.py
# REAL = 'real'
# 
# Path: reggie/core/domains.py
# BOUNDS = {
#     REAL: (-np.inf, np.inf),
#     POSITIVE: (EPSILON, np.inf)
# }
# 
# TRANSFORMS = {
#     REAL: Identity(),
#     POSITIVE: Log()
# }


# Path: reggie/core/params.py
import numpy as np
import copy
import tabulate
import warnings
from collections import OrderedDict
from .priors import PRIORS
from .domains import REAL
from .domains import BOUNDS, TRANSFORMS


    def set_value(self, theta, transform=False):
        """
        Set the parameters to values given by the vector `theta`. If
        `transform` is true, then `theta` should lie in the transformed space
        and hence the parameters will be set to the inverse transform of
        `theta`.
        """
        # transform the parameters if necessary and ensure that they lie in the
        # correct domain (here we're using the transform as a domain
        # specification, although we may want to separate these later).
        if transform:
            theta = self.transform.get_inverse(theta)

        if _outbounds(self.bounds, theta):
            raise ValueError('value lies outside the parameter\'s bounds')

        self.value.flat[:] = theta

    def set_prior(self, prior, *args, **kwargs):
        """
        Set the prior of the parameter object. This should be given as a string
        identifier and arguments corresponding to fixed hyperparameters of the
        prior.
        """
        if prior is None:
            self.prior = prior
            self.bounds = BOUNDS[self.domain]

        else:

            prior = PRIORS[prior](*args, **kwargs)