class_docstr: Brownian interval with fixed entropy.
  
  Computes increments (and optionally Levy area).
  
  To use:
  >>> bm = BrownianInterval(t0=0.0, t1=1.0, size=(4, 1), device='cuda')
  >>> bm(0., 0.5)
  tensor([[ 0.0733],
          [-0.5692],
          [ 0.1872],
          [-0.3889]], device='cuda:0')
class_docstr_tok: ["Brownian","interval","with","fixed","entropy",".","Computes","increments","(","and","optionally","Levy","area",")",".","To","use",":",">",">",">","bm","=","BrownianInterval","(","t0=0.0",",","t1=1.0",",","size=","(","4",",","1",")",",","device='cuda","'",")",">",">",">","bm","(","0.",",","0.5",")","tensor","(","[","[","0.0733","]",",","[","-0.5692","]",",","[","0.1872","]",",","[","-0.3889","]","]",",","device='cuda:0","'",")"]
code: def _create_dependency_tree(self, dt):
      # For safety we take a min with 100: if people take very large cache sizes then this would then break the
      # logarithmic into linear, which causes RecursionErrors.
      if (
          self._cache_size is None
      ):  # cache_size=None corresponds to infinite cache.
          cache_size = 100
      else:
          cache_size = min(self._cache_size, 100)
  
      self._tree_dt = min(self._tree_dt, dt)
      # Rationale: We are prepared to hold `cache_size` many things in memory, so when making steps of size `dt`
      # then we can afford to have the intervals at the bottom of our binary tree be of size `dt * cache_size`.
      # For safety we then make this a bit smaller by multiplying by 0.8.
      piece_length = self._tree_dt * cache_size * 0.8
  
      def _set_points(interval):
          start = interval._start
          end = interval._end
          if end - start > piece_length:
              midway = (end + start) / 2
              interval._loc(start, midway)
              _set_points(interval._left_child)
              _set_points(interval._right_child)
  
      _set_points(self)
  
imports: import math
  import trampoline
  import warnings
  import numpy
  import torch
  from .None import brownian_base
  from ..settings import LEVY_AREA_APPROXIMATIONS
  from ..types import Scalar, Optional, Tuple, Union, Tensor
label_desc: Use image node_id 6 for calling the BrownianInterval obj's underlying member method code with example usage: obj._create_dependency_tree(dt) without return types