Source code for kappa_sdk.kw.model.improve_variable

import math
from .model_parameter import ModelParameter


[docs] class ImproveVariable: """ ImproveVariable object. Describes an improve variable with mim/max, actual value and transformation applied """ def __init__(self, model_parameter: ModelParameter, current_value: float, use_log_space: bool, minimum_bound: float, maximum_bound: float): self.model_parameter = model_parameter self.__use_log_space = use_log_space self._minimum_bound = minimum_bound self._maximum_bound = maximum_bound self._current_value_internal = current_value def _apply_transformation_if_required(self, value: float) -> float: return math.log10(value) if self.__use_log_space else value def apply_inverse_transformation_if_required(self, value: float) -> float: """ Apply inverse transformation to a value if we use a log space Parameters ---------- value: Value to apply the inverse transformation if we use a log space Returns ------- float: Value transformed """ return math.pow(10, value) if self.__use_log_space else value @property def current_value_transformed(self) -> float: """ Returns ------- float: Current value transformed """ return self._apply_transformation_if_required(self._current_value_internal) @property def minimum_bound_transformed(self) -> float: """ Returns ------- float: Minimum value transformed """ return self._apply_transformation_if_required(self._minimum_bound) @property def maximum_bound_transformed(self) -> float: """ Returns ------- float: Maximum value transformed """ return self._apply_transformation_if_required(self._maximum_bound) def __str__(self) -> str: return "Parameter: " + str(self.model_parameter.conditions['Type']) + ", min: " + str(self._minimum_bound) + ", max: " + str(self._maximum_bound)