class_docstr: variance gamma process
      
code: def simulate(self, m, s, kappa, ts, nrepl):
      T = len(ts)
      dXs = np.zeros((nrepl, T))
      for t in range(T):
          dt = ts[1] - 0
          if t > 1:
              dt = ts[t] - ts[t - 1]
  
          # print dt/kappa
          # TODO: check parameterization of gamrnd, checked looks same as np
  
          d_tau = kappa * np.random.gamma(dt / kappa, 1.0, size=(nrepl))
          # print s*np.sqrt(d_tau)
          # this raises exception:
          # dX = stats.norm.rvs(m*d_tau,(s*np.sqrt(d_tau)))
          # np.random.normal requires scale >0
          dX = np.random.normal(
              loc=m * d_tau, scale=1e-6 + s * np.sqrt(d_tau)
          )
  
          dXs[:, t] = dX
  
      x = np.cumsum(dXs, 1)
      return x
  
imports: import numpy
  import matplotlib.pyplot
label_desc: Use image node_id 2 for calling the VG obj's underlying member method code with example usage: obj.simulate(m, s, kappa, ts, nrepl) and returns: x