docstr: Add a new hypothesis to the list.
code: def hypo_add(
      self, hyp: torch.Tensor, sum_logprobs: float, hypo_idx: int
  ):
      """
      Add a new hypothesis to the list.
      """
      score = sum_logprobs / (hyp.shape[-1] ** self.length_penalty)
      hyps_count = self.hypo_len(hypo_idx)
      if (
          hyps_count < self.num_beams
          or score > self._beam_hyps_worst_scores[hypo_idx]
      ):
          # NOTE: work around difference of torch.sum(empty_tensor) == 0, while error in onnx.
          # Bug: https://msdata.visualstudio.com/Vienna/_workitems/edit/1486599
          beam_idx = (
              torch.sum(self._beam_hyps_count[:hypo_idx])
              if hypo_idx != 0
              else torch.tensor(0, dtype=torch.long)
          )
          self._beam_scores.insert(beam_idx, torch.tensor([score]))
          self._beam_hyps.insert(beam_idx, hyp)
          if hyps_count + 1 > self.num_beams:
              sorted_next_scores, sorted_indices = torch.topk(
                  torch.cat(self._beam_scores)[
                      beam_idx : beam_idx + hyps_count + 1
                  ],
                  hyps_count + 1,
                  largest=False,
              )
              del self._beam_hyps[int((sorted_indices[0] + beam_idx))]
              del self._beam_scores[int((sorted_indices[0] + beam_idx))]
              self._beam_hyps_worst_scores[
                  hypo_idx
              ] = sorted_next_scores[1]
          else:
              self._beam_hyps_worst_scores[hypo_idx] = min(
                  score, self._beam_hyps_worst_scores[hypo_idx]
              )
              self._beam_hyps_count[hypo_idx] = hyps_count + 1
  
imports: import copy
  import itertools
  from typing import List, Optional, Tuple
  import torch
  import torch.nn.functional
  from transformers import BartConfig
  from transformers.generation_utils import GenerationMixin
label_desc: Use image node_id 5 for calling the BeamSearchScorerTS obj's underlying member method code with example usage: obj.hypo_add(hyp, sum_logprobs, hypo_idx) without return types