code: def mass_preservation(
      alpha: Tensor,
      padding_mask: Optional[Tensor] = None,
      left_padding: bool = False,
  ):
      """
      Function to compute the mass perservation for alpha.
      This means that the residual weights of alpha will be assigned
      to the last token.
  
      Reference:
      Monotonic Infinite Lookback Attention for Simultaneous Machine Translation
      https://arxiv.org/abs/1906.05218
  
      alpha: bsz, tgt_len, src_len
      padding_mask: bsz, src_len
      left_padding: bool
      """
  
      prob_check(alpha)
  
      if padding_mask is not None:
          if not left_padding:
              assert not padding_mask[
                  :, 0
              ].any(), "Find padding on the beginning of the sequence."
          alpha = alpha.masked_fill(padding_mask.unsqueeze(1), 0.0)
  
      if left_padding or padding_mask is None:
          residuals = 1 - alpha[:, :, :-1].sum(dim=-1).clamp(0, 1)
          alpha[:, :, -1] = residuals
      else:
          # right padding
          _, tgt_len, src_len = alpha.size()
          residuals = 1 - alpha.sum(dim=-1, keepdim=True).clamp(0, 1)
          src_lens = src_len - padding_mask.sum(dim=1, keepdim=True)
          src_lens = src_lens.expand(-1, tgt_len).contiguous()
          # add back the last value
          residuals += alpha.gather(2, src_lens.unsqueeze(2) - 1)
          alpha = alpha.scatter(2, src_lens.unsqueeze(2) - 1, residuals)
  
          prob_check(alpha)
  
      return alpha
  
imports: from typing import Optional
  import torch
  from torch import Tensor
  from examples.simultaneous_translation.utils.functions import exclusive_cumprod, prob_check, moving_sum
label_desc: Use image node_id 3 for calling a global function with example usage: mass_preservation(alpha, padding_mask, left_padding) and returns: alpha