code: def broadcast_to_multibatch(
      batch_shape_a, batch_shape_b, array_a, *array_b
  ):
      """Broadcast to multibatch.
  
      Gives to both arrays batch shape `batch_shape_b + batch_shape_a`.
  
      Does nothing if one of the batch shapes is empty.
  
      Parameters
      ----------
      batch_shape_a : tuple
          Batch shape of array_a.
      batch_shape_b : tuple
          Batch shape of array_b.
      array_a : array
      array_b : array
      """
      multi_b = len(array_b) > 1
  
      if not batch_shape_a or not batch_shape_b:
          return (
              (array_a, array_b) if multi_b else (array_a, array_b[0])
          )
  
      array_a_ = gs.broadcast_to(array_a, batch_shape_b + array_a.shape)
  
      n_batch_b = len(batch_shape_b)
      indices_in = list(range(len(batch_shape_a)))
      indices_out = [index + n_batch_b for index in indices_in]
  
      array_b_ = []
      for array in array_b:
          array_b_aux = gs.broadcast_to(
              array, batch_shape_a + array.shape
          )
          array_b_.append(
              gs.moveaxis(array_b_aux, indices_in, indices_out)
          )
  
      return (
          (array_a_, array_b_) if multi_b else (array_a_, array_b_[0])
      )
  
file_path: geomstats/geomstats/vectorization.py
imports: import math
  import geomstats.backend
label_desc: Use image node_id 17 for calling a global function with example usage: broadcast_to_multibatch(batch_shape_a, batch_shape_b, array_a) and returns: unknown, unknown