All implementations of HMC use numerical integrators requiring a step size (equivalently, discretization time interval).
If step_size is too large, the leapfrog integrator will be 
inaccurate and too many proposals will be rejected. If step_size 
is too small, too many small steps will be taken by the leapfrog integrator 
leading to long simulation times per interval. Thus the goal is to balance the 
acceptance rate between these extremes.