class_docstr: Mondrian Tree Regressor.
  
  Parameters
  ----------
  step
      Step of the tree.
  use_aggregation
      Whether to use aggregation weighting techniques or not.
  iteration
      Number iterations to do during training.
  seed
      Random seed for reproducibility.
  
  Notes
  -----
  The Mondrian Tree Regressor is a type of decision tree that bases splitting decisions over a
  Mondrian process.
  
  References
  ----------
  [^1]: Balaji Lakshminarayanan, Daniel M. Roy, Yee Whye Teh. Mondrian Forests: Efficient Online Random Forests.
      arXiv:1406.2673, pages 2-4.
class_docstr_tok: ["Mondrian","Tree","Regressor",".","Parameters","--","--","--","--","--","step","Step","of","the","tree",".","use_aggregation","Whether","to","use","aggregation","weighting","techniques","or","not",".","iteration","Number","iterations","to","do","during","training",".","seed","Random","seed","for","reproducibility",".","Notes","--","--","-","The","Mondrian","Tree","Regressor","is","a","type","of","decision","tree","that","bases","splitting","decisions","over","a","Mondrian","process",".","References","--","--","--","--","--","[","^1","]",":","Balaji","Lakshminarayanan",",","Daniel","M.","Roy",",","Yee","Whye","Teh",".","Mondrian","Forests",":","Efficient","Online","Random","Forests",".","arXiv:1406.2673",",","pages","2-4","."]
docstr: Computes the split time of the given node.
  
  Parameters
  ----------
  node
      Target node.
docstr_tok: ["Computes","the","split","time","of","the","given","node",".","Parameters","--","--","--","--","--","node","Target","node","."]
code: def _compute_split_time(
      self,
      node: MondrianLeafRegressor | MondrianBranchRegressor,
      extensions_sum: float,
  ) -> float:
      """Computes the split time of the given node.
  
      Parameters
      ----------
      node
          Target node.
  
      """
  
      if extensions_sum > 0:
          # Sample an exponential with intensity = extensions_sum
          T = utils.random.exponential(
              1 / extensions_sum, rng=self._rng
          )
  
          time = node.time
          # Splitting time of the node (if splitting occurs)
          split_time = time + T
          # If the node is a leaf we must split it
          if isinstance(node, MondrianLeafRegressor):
              return split_time
          # Otherwise we apply Mondrian process dark magic :)
          # 1. We get the creation time of the childs (left and right is the same)
          left, _ = node.children
          child_time = left.time
          # 2. We check if splitting time occurs before child creation time
          if split_time < child_time:
              return split_time
  
      return 0.0
  
file_path: river/river/tree/mondrian/mondrian_tree_regressor.py
imports: from __future__ import annotations
  import math
  from river import base, utils
  from river.tree.mondrian.mondrian_tree import MondrianTree
  from river.tree.mondrian.mondrian_tree_nodes import MondrianBranchRegressor, MondrianLeafRegressor, MondrianNodeRegressor
label_desc: Use image node_id 7 for calling the MondrianTreeRegressor obj's underlying member method code with example usage: obj._compute_split_time(node, extensions_sum) and returns: int, split_time, split_time