class_docstr: Map X to [0, 1]^d for RangeParameter of type float and not log scale.
  
  Uses bounds l <= x <= u, sets x_tilde_i = (x_i - l_i) / (u_i - l_i).
  Constraints wTx <= b are converted to gTx_tilde <= h, where
  g_i = w_i (u_i - l_i) and h = b - wTl.
  
  Transform is done in-place.
class_docstr_tok: ["Map","X","to","[","0",",","1","]","^d","for","RangeParameter","of","type","float","and","not","log","scale",".","Uses","bounds","l","<","=","x","<","=","u",",","sets","x_tilde_i","=","(","x_i","-","l_i",")","\/","(","u_i","-","l_i",")",".","Constraints","wTx","<","=","b","are","converted","to","gTx_tilde","<","=","h",",","where","g_i","=","w_i","(","u_i","-","l_i",")","and","h","=","b","-","wTl",".","Transform","is","done","in-place","."]
code: def __init__(
      self,
      search_space: Optional[SearchSpace] = None,
      observations: Optional[List[Observation]] = None,
      modelbridge: Optional[
          "modelbridge_module.base.ModelBridge"
      ] = None,
      config: Optional[TConfig] = None,
  ) -> None:
      assert search_space is not None, "UnitX requires search space"
      # Identify parameters that should be transformed
      self.bounds: Dict[str, Tuple[float, float]] = {}
      for p_name, p in search_space.parameters.items():
          if (
              isinstance(p, RangeParameter)
              and p.parameter_type == ParameterType.FLOAT
              and not p.log_scale
          ):
              self.bounds[p_name] = (p.lower, p.upper)
  
imports: from typing import Dict, List, Optional, Tuple, TYPE_CHECKING
  import numpy
  from ax.core.observation import Observation, ObservationFeatures
  from ax.core.parameter import ParameterType, RangeParameter
  from ax.core.parameter_constraint import ParameterConstraint
  from ax.core.parameter_distribution import ParameterDistribution
  from ax.core.search_space import RobustSearchSpace, SearchSpace
  from ax.exceptions.core import UnsupportedError, UserInputError
  from ax.modelbridge.transforms.base import Transform
  from ax.models.types import TConfig
label_desc: Use image node_id 1 to create a new UnitX object from inherited base classes: Transform with example: obj = UnitX(search_space, observations, modelbridge, config)