code: def _compute_square_dist(self, F, x1: Tensor, x2: Tensor) -> None:
      r"""
      Parameters
      --------------------
      F : ModuleType
          A module that can either refer to the Symbol API or the NDArray
          API in MXNet.
      x1 : Tensor
          Feature data of shape (batch_size, history_length, num_features).
      x2 : Tensor
          Feature data of shape (batch_size, history_length, num_features).
  
      Returns
      --------------------
      Tensor
          square distance matrix of shape (batch_size, history_length, history_length)
          :math: `\|\mathbf{x_1}-\mathbf{x_2}\|_2^2 = (\mathbf{x_1}-\mathbf{x_2})^T(\mathbf{x_1}-\mathbf{x_2})
                                                      = \|\mathbf{x_1}\|_2^2 - 2\mathbf{x_1}^T\mathbf{x_2}
                                                      + \|\mathbf{x_2}\|_2^2`.
      """  # noqa: E501
      feature_axis = 2
      # Column vector: Add to math:`x_i^Tx_i` to every column in row i
      x1_norm_square = (
          F.norm(x1, ord=2, axis=feature_axis) ** 2
      ).expand_dims(2)
      # Row vector: Add to math:`x_i^Tx_i` to every row in column i
      x2_norm_square = (
          F.norm(x2, ord=2, axis=feature_axis) ** 2
      ).expand_dims(1)
      x1x2_trans = F.linalg.gemm2(x1, x2, transpose_b=True)
      self.square_dist = F.broadcast_add(
          F.broadcast_sub(x1_norm_square, 2 * x1x2_trans),
          x2_norm_square,
      )
  
label_desc: Use image node_id 2 for calling the Kernel obj's underlying member method code with example usage: obj._compute_square_dist(F, x1, x2) without return types