class_docstr: Class for simulating hamiltonian dynamics using leapfrog method
  
  Parameters
  ----------
  model : An instance of pgmpy.models
      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
docstr: Method to perform time splitting using leapfrog
docstr_tok: ["Method","to","perform","time","splitting","using","leapfrog"]
code: def _get_proposed_values(self):
      """
      Method to perform time splitting using leapfrog
      """
      # Take half step in time for updating momentum
      momentum_bar = (
          self.momentum
          + 0.5 * self.stepsize * self.model.grad_logp(self.position)
      )
  
      # Take full step in time for updating position position
      position_bar = self.position + self.stepsize * momentum_bar
  
      grad_log = self.model.grad_logp(position_bar)
  
      # Take remaining half step in time for updating momentum
      momentum_bar = momentum_bar + 0.5 * self.stepsize * grad_log
  
      return position_bar, momentum_bar, grad_log
  
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 2 for calling the LeapFrog obj's underlying member method code with example usage: obj._get_proposed_values() and returns: position_bar,  momentum_bar,  grad_log