docstr: inplace update, a[positions] += b[::stride]
  Args:
      pk: public key, not used
      a: the vector to update
      b: the vector to update with
      positions: the positions to update
      stride: the stride to update
code: def i_update(pk: PK, a: EV, b: EV, positions, stride: int) -> None:
      """
      inplace update, a[positions] += b[::stride]
      Args:
          pk: public key, not used
          a: the vector to update
          b: the vector to update with
          positions: the positions to update
          stride: the stride to update
      """
      a.iupdate(b, positions, stride, pk.pk)
  
imports: from typing import List, Optional, Tuple
  import torch
  from fate_utils.ou import CiphertextVector, PlaintextVector
  from fate_utils.ou import Coder
  from fate_utils.ou import Evaluator
  from fate_utils.ou import PK
  from fate_utils.ou import SK
  from fate_utils.ou import keygen
  from .type import TensorEvaluator
label_desc: Use image node_id 20 for calling the evaluator obj's underlying member method code with example usage: obj.i_update(pk, a, b, positions, stride) without return types