class_docstr: Discrete Haar transform.
  
  This uses :func:`~pyro.ops.tensor_utils.haar_transform` and
  :func:`~pyro.ops.tensor_utils.inverse_haar_transform` to compute
  (orthonormal) Haar and inverse Haar transforms. The jacobian is 1.
  For sequences with length `T` not a power of two, this implementation
  is equivalent to a block-structured Haar transform in which block
  sizes decrease by factors of one half from left to right.
  
  :param int dim: Dimension along which to transform. Must be negative.
      This is an absolute dim counting from the right.
  :param bool flip: Whether to flip the time axis before applying the
      Haar transform. Defaults to false.
code: def with_cache(self, cache_size=1):
      if self._cache_size == cache_size:
          return self
      return HaarTransform(
          self.dim, flip=self.flip, cache_size=cache_size
      )
  
file_path: pyro/pyro/distributions/transforms/haar.py
imports: from torch.distributions.transforms import Transform
  from pyro.ops.tensor_utils import haar_transform, inverse_haar_transform
  from ..None import constraints
label_desc: Use image node_id 9 for calling the HaarTransform obj's underlying member method code with example usage: obj.with_cache(cache_size) and returns: HaarTransform, self