parameterspace.transformations.log_zero_one
    
        
LogZeroOneFloat            (BaseTransformation)
        
    Maps bounded interval to [0,1] via a logarithmic transformation.
This means that all the priors used with a parameter effectively model the exponent of the actual quantity.
This class should be used for ContinuousParameters.
Source code in parameterspace/transformations/log_zero_one.py
          class LogZeroOneFloat(BaseTransformation):
    """Maps bounded interval to [0,1] via a logarithmic transformation.
    This means that all the priors used with a parameter effectively model the
    exponent of the actual quantity.
    This class should be used for ContinuousParameters.
    """
    @store_init_arguments
    def __init__(self, bounds: Optional[Tuple]):
        """
        [summary]
        Args:
            bounds: Bounds must be positive for log-transformation.
        """
        assert min(bounds) > 0, "bounds must be positive for log-transformation"
        super().__init__(bounds, (0, 1))
        self.log_bounds = np.log(self.input_bounds)
        self.log_interval_size = self.log_bounds[1] - self.log_bounds[0]
    def inverse(self, numerical_value: float) -> float:
        return float(
            np.clip(
                np.exp(self.log_bounds[0] + numerical_value * (self.log_interval_size)),
                self.input_bounds[0],
                self.input_bounds[1],
            )
        )
    def __call__(self, value: Any) -> float:
        return float((np.log(value) - self.log_bounds[0]) / self.log_interval_size)
    def jacobian_factor(self, numerical_value: float) -> float:
        return 1.0 / (self.log_interval_size * self.inverse(numerical_value))
    def __eq__(self, other):
        return np.allclose(self.input_bounds, other.input_bounds)
inverse(self, numerical_value)
    Convert the numerical representation back to the true value with the proper type.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
numerical_value | 
        float | 
        Transformed/Numerical representation of a value.  | 
        required | 
Returns:
| Type | Description | 
|---|---|
float | 
      The value corresponding to the given value. Type depends no the kind of transformation.  | 
    
Source code in parameterspace/transformations/log_zero_one.py
          def inverse(self, numerical_value: float) -> float:
    return float(
        np.clip(
            np.exp(self.log_bounds[0] + numerical_value * (self.log_interval_size)),
            self.input_bounds[0],
            self.input_bounds[1],
        )
    )
jacobian_factor(self, numerical_value)
    Factor to correct the likelihood based on the non-linear transformation.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
numerical_value | 
        float | 
        Transformed/Numerical representation of a value.  | 
        required | 
Returns:
| Type | Description | 
|---|---|
float | 
      Jacobian factor to properly transform the likelihood.  | 
    
Source code in parameterspace/transformations/log_zero_one.py
          def jacobian_factor(self, numerical_value: float) -> float:
    return 1.0 / (self.log_interval_size * self.inverse(numerical_value))
        
LogZeroOneInteger            (BaseTransformation)
        
    Maps a bounded interval of integers to [0, 1] via a logarithmic transformation.
This means that all the priors used with a parameter effectively model the exponent of the actual quantity.
This class should be used for IntegerParameters.
Source code in parameterspace/transformations/log_zero_one.py
          class LogZeroOneInteger(BaseTransformation):
    """Maps a bounded interval of integers to [0, 1] via a logarithmic transformation.
    This means that all the priors used with a parameter effectively model the
    exponent of the actual quantity.
    This class should be used for IntegerParameters.
    """
    @store_init_arguments
    def __init__(self, bounds: Optional[Tuple]):
        """
        [summary]
        Args:
            bounds: Bounds must be positive for log-transformation.
        """
        assert min(bounds) > 0, "bounds must be positive for log-transformation"
        super().__init__(bounds, (0, 1))
        self.log_bounds = np.log(self.input_bounds + np.array([-0.5, 0.5]))
        self.log_interval_size = self.log_bounds[1] - self.log_bounds[0]
    def inverse(self, numerical_value: float) -> int:
        """
        [summary]
        """
        integer_value = np.around(
            np.exp(self.log_bounds[0] + numerical_value * (self.log_interval_size))
        )
        # clip result to bound due to rounding problems when the numerical value is 0.0
        return int(np.clip(integer_value, *self.input_bounds))
    def __call__(self, value: Any) -> float:
        return float((np.log(value) - self.log_bounds[0]) / self.log_interval_size)
    def jacobian_factor(self, numerical_value: float) -> float:
        return 1.0 / (self.log_interval_size * self.inverse(numerical_value))
    def __eq__(self, other):
        return np.allclose(self.input_bounds, other.input_bounds)
inverse(self, numerical_value)
    [summary]
Source code in parameterspace/transformations/log_zero_one.py
          def inverse(self, numerical_value: float) -> int:
    """
    [summary]
    """
    integer_value = np.around(
        np.exp(self.log_bounds[0] + numerical_value * (self.log_interval_size))
    )
    # clip result to bound due to rounding problems when the numerical value is 0.0
    return int(np.clip(integer_value, *self.input_bounds))
jacobian_factor(self, numerical_value)
    Factor to correct the likelihood based on the non-linear transformation.
Parameters:
| Name | Type | Description | Default | 
|---|---|---|---|
numerical_value | 
        float | 
        Transformed/Numerical representation of a value.  | 
        required | 
Returns:
| Type | Description | 
|---|---|
float | 
      Jacobian factor to properly transform the likelihood.  | 
    
Source code in parameterspace/transformations/log_zero_one.py
          def jacobian_factor(self, numerical_value: float) -> float:
    return 1.0 / (self.log_interval_size * self.inverse(numerical_value))