docstr: add an experience sample at the end of replay memory
  
  Args:
      obs (float32): observation, shape of obs_dim
      act (int32 in Continuous control environment, float32 in Continuous control environment): action, shape of act_dim
      reward (float32): reward
      next_obs (float32): next observation, shape of obs_dim
      terminal (bool): terminal of an episode or not
docstr_tok: ["add","an","experience","sample","at","the","end","of","replay","memory","Args",":","obs","(","float32",")",":","observation",",","shape","of","obs_dim","act","(","int32","in","Continuous","control","environment",",","float32","in","Continuous","control","environment",")",":","action",",","shape","of","act_dim","reward","(","float32",")",":","reward","next_obs","(","float32",")",":","next","observation",",","shape","of","obs_dim","terminal","(","bool",")",":","terminal","of","an","episode","or","not"]
code: def append(self, obs, act, reward, next_obs, terminal):
      """add an experience sample at the end of replay memory
  
      Args:
          obs (float32): observation, shape of obs_dim
          act (int32 in Continuous control environment, float32 in Continuous control environment): action, shape of act_dim
          reward (float32): reward
          next_obs (float32): next observation, shape of obs_dim
          terminal (bool): terminal of an episode or not
      """
      if self._curr_size < self.max_size:
          self._curr_size += 1
      self.obs[self._curr_pos] = obs
      self.action[self._curr_pos] = act
      self.reward[self._curr_pos] = reward
      self.next_obs[self._curr_pos] = next_obs
      self.terminal[self._curr_pos] = terminal
      self._curr_pos = (self._curr_pos + 1) % self.max_size
  
file_path: PARL/parl/utils/replay_memory.py
imports: import numpy
  from parl.utils import logger
label_desc: Use image node_id 5 for calling the ReplayMemory obj's underlying member method code with example usage: obj.append(obs, act, reward, next_obs, terminal) without return types