class_docstr: Brownian tree with fixed entropy.
  
  Useful when the map from entropy -> Brownian motion shouldn't depend on the
  locations and order of the query points. (As the usual BrownianInterval
  does - note that BrownianTree is slower as a result though.)
  
  To use:
  >>> bm = BrownianTree(t0=0.0, w0=torch.zeros(4, 1))
  >>> bm(0., 0.5)
  tensor([[ 0.0733],
          [-0.5692],
          [ 0.1872],
          [-0.3889]], device='cuda:0')
docstr: Initialize the Brownian tree.
  
  The random value generation process exploits the parallel random number paradigm and uses
  `numpy.random.SeedSequence`. The default generator is PCG64 (used by `default_rng`).
  
  Arguments:
      t0: Initial time.
      w0: Initial state.
      t1: Terminal time.
      w1: Terminal state.
      entropy: Global seed, defaults to `None` for random entropy.
      tol: Error tolerance before the binary search is terminated; the search depth ~ log2(tol).
      pool_size: Size of the pooled entropy. This parameter affects the query speed significantly.
      cache_depth: Unused; deprecated.
      safety: Unused; deprecated.
docstr_tok: ["Initialize","the","Brownian","tree",".","The","random","value","generation","process","exploits","the","parallel","random","number","paradigm","and","uses","`","numpy.random.SeedSequence","`",".","The","default","generator","is","PCG64","(","used","by","`","default_rng","`",")",".","Arguments",":","t0",":","Initial","time",".","w0",":","Initial","state",".","t1",":","Terminal","time",".","w1",":","Terminal","state",".","entropy",":","Global","seed",",","defaults","to","`","None","`","for","random","entropy",".","tol",":","Error","tolerance","before","the","binary","search","is","terminated",";","the","search","depth","~","log2","(","tol",")",".","pool_size",":","Size","of","the","pooled","entropy",".","This","parameter","affects","the","query","speed","significantly",".","cache_depth",":","Unused",";","deprecated",".","safety",":","Unused",";","deprecated","."]
code: def __init__(
      self,
      t0: Scalar,
      w0: Tensor,
      t1: Optional[Scalar] = None,
      w1: Optional[Tensor] = None,
      entropy: Optional[int] = None,
      tol: float = 1e-6,
      pool_size: int = 24,
      cache_depth: int = 9,
      safety: Optional[float] = None,
  ):
      """Initialize the Brownian tree.
  
      The random value generation process exploits the parallel random number paradigm and uses
      `numpy.random.SeedSequence`. The default generator is PCG64 (used by `default_rng`).
  
      Arguments:
          t0: Initial time.
          w0: Initial state.
          t1: Terminal time.
          w1: Terminal state.
          entropy: Global seed, defaults to `None` for random entropy.
          tol: Error tolerance before the binary search is terminated; the search depth ~ log2(tol).
          pool_size: Size of the pooled entropy. This parameter affects the query speed significantly.
          cache_depth: Unused; deprecated.
          safety: Unused; deprecated.
      """
  
      if t1 is None:
          t1 = t0 + 1
      if w1 is None:
          W = None
      else:
          W = w1 - w0
      self._w0 = w0
      self._interval = brownian_interval.BrownianInterval(
          t0=t0,
          t1=t1,
          size=w0.shape,
          dtype=w0.dtype,
          device=w0.device,
          entropy=entropy,
          tol=tol,
          pool_size=pool_size,
          halfway_tree=True,
          W=W,
      )
      super(BrownianTree, self).__init__()
  
imports: import torch
  from .None import brownian_base
  from .None import brownian_interval
  from ..types import Optional, Scalar, Tensor, Tuple, Union
label_desc: Use image node_id 1 to create a new BrownianTree object from inherited base classes: brownian_base with example: obj = BrownianTree(t0, w0, t1, w1, entropy, tol, pool_size, cache_depth, safety)