class_docstr: Version of ArrayStepShared that allows samplers to access the states
  of other chains in the population.
  
  Works by linking a list of Points that is updated as the chains are iterated.
class_docstr_tok: ["Version","of","ArrayStepShared","that","allows","samplers","to","access","the","states","of","other","chains","in","the","population",".","Works","by","linking","a","list","of","Points","that","is","updated","as","the","chains","are","iterated","."]
docstr: Parameters
  ----------
  vars: list of sampling value variables
  shared: dict of PyTensor variable -> shared variable
  blocked: Boolean (default True)
docstr_tok: ["Parameters","--","--","--","--","--","vars",":","list","of","sampling","value","variables","shared",":","dict","of","PyTensor","variable","-",">","shared","variable","blocked",":","Boolean","(","default","True",")"]
code: def __init__(self, vars, shared, blocked=True):
      """
      Parameters
      ----------
      vars: list of sampling value variables
      shared: dict of PyTensor variable -> shared variable
      blocked: Boolean (default True)
      """
      self.population = None
      self.this_chain = None
      self.other_chains = None
      return super().__init__(vars, shared, blocked)
  
imports: from abc import abstractmethod
  from typing import Callable, List, Tuple, Union, cast
  import numpy
  from numpy.random import uniform
  from pymc.blocking import DictToArrayBijection, PointType, RaveledVars, StatsType
  from pymc.model import modelcontext
  from pymc.step_methods.compound import BlockedStep
  from pymc.util import get_var_name
label_desc: Use image node_id 1 to create a new PopulationArrayStepShared object from inherited base classes: ArrayStepShared with example: obj = PopulationArrayStepShared(vars, shared, blocked)