class_docstr: Base class for proposing new values of position and momentum
  by simulating Hamiltonian Dynamics.
  
  Classes inheriting this base class can be passed as an argument for
  simulate_dynamics in inference algorithms.
  
  Parameters
  ----------
  model : Model for which DiscretizeTime object is initialized
  
  position : A 1d array like object (numpy.ndarray or list)
      Vector representing values of parameter position( or X)
  
  momentum: A 1d array like object (numpy.ndarray or list)
      Vector representing the proposed value for momentum (velocity)
  
  stepsize: Float
      stepsize for the simulating dynamics
code: def __init__(self, model, position, momentum, stepsize):
      position = _check_1d_array_object(position, "position")
  
      momentum = _check_1d_array_object(momentum, "momentum")
  
      _check_length_equal(position, momentum, "position", "momentum")
  
      self.position = position
      self.momentum = momentum
      self.stepsize = stepsize
      self.model = model
  
      # new_position is the new proposed position, new_momentum is the new
      # proposed momentum, new_grad_lop is the value of grad log at new_position
      self.new_position = self.new_momentum = self.new_grad_logp = None
  
file_path: dragonfly/dragonfly/sampling/base.py
imports: from .check_functions import _check_1d_array_object, _check_length_equal
label_desc: Use image node_id 1 to create a new BaseSimulateHamiltonianDynamics object from inherited base classes: object with example: obj = BaseSimulateHamiltonianDynamics(model, position, momentum, stepsize)