class_docstr: Compute `Y = g(X; scale) = scale @ X` for blockwise `X` and `scale`.
  
  `scale` is a `LinearOperator` that supports blockwise semantics, e.g.
  `LinearOperatorBlockDiag` or `LinearOperatorBlockLowerTriangular`. The forward
  transformation is: `scale @ X` where `X` is a list or tuple of `Tensor`s, the
  rightmost dimensions of which match the `domain_dimension`s of the
  corresponding operators in `scale`'s block structure.
  
  Example use:
  
  ```python
  op_1 = tf.linalg.LinearOperatorDiag(diag=[1., -1., 3.])
  op_2 = tf.linalg.LinearOperatorFullMatrix([[12., 5.], [-1., 3.]])
  scale = tf.linalg.LinearOperatorBlockDiag([op_1, op_2], is_non_singular=True)
  bijector = ScaleMatvecLinearOperatorBlock(scale)
  
  x = [[2., 0., 1.], [3., 1.]]  # Input consisting of two blocks
  y = bijector.forward(x)  # [Tensor([2., 0., 3.]), Tensor([41., 0.])]
  ```
class_docstr_tok: ["Compute","`","Y","=","g","(","X",";","scale",")","=","scale","@","X","`","for","blockwise","`","X","`","and","`","scale","`",".","`","scale","`","is","a","`","LinearOperator","`","that","supports","blockwise","semantics",",","e.g",".","`","LinearOperatorBlockDiag","`","or","`","LinearOperatorBlockLowerTriangular","`",".","The","forward","transformation","is",":","`","scale","@","X","`","where","`","X","`","is","a","list","or","tuple","of","`","Tensor","`","s",",","the","rightmost","dimensions","of","which","match","the","`","domain_dimension","`","s","of","the","corresponding","operators","in","`","scale","`","'s","block","structure",".","Example","use",":","``","`","python","op_1","=","tf.linalg.LinearOperatorDiag","(","diag=","[","1.",",","-1.",",","3",".","]",")","op_2","=","tf.linalg.LinearOperatorFullMatrix","(","[","[","12.",",","5",".","]",",","[","-1.",",","3",".","]","]",")","scale","=","tf.linalg.LinearOperatorBlockDiag","(","[","op_1",",","op_2","]",",","is_non_singular=True",")","bijector","=","ScaleMatvecLinearOperatorBlock","(","scale",")","x","=","[","[","2.",",","0.",",","1",".","]",",","[","3.",",","1",".","]","]","#","Input","consisting","of","two","blocks","y","=","bijector.forward","(","x",")","#","[","Tensor","(","[","2.",",","0.",",","3",".","]",")",",","Tensor","(","[","41.",",","0",".","]",")","]","``","`"]
code: def _inverse_event_shape_tensor(self, output_shape):
      if isinstance(
          self.scale, tf.linalg.LinearOperatorBlockLowerTriangular
      ):
          return _cumulative_broadcast_dynamic(output_shape)
      return output_shape
  
imports: import tensorflow.compat.v2
  from tensorflow_probability.python.bijectors import bijector
  from tensorflow_probability.python.internal import dtype_util
  from tensorflow_probability.python.internal import parameter_properties
  from tensorflow_probability.python.internal import prefer_static
  from tensorflow_probability.python.internal import tensor_util
  from tensorflow_probability.python.internal import tensorshape_util
label_desc: Use image node_id 5 for calling the ScaleMatvecLinearOperatorBlock obj's underlying member method code with example usage: obj._inverse_event_shape_tensor(output_shape) and returns: output_shape, _cumulative_broadcast_dynamic