title: ValueError: ndarray is not C-contiguous in cython
body: <p>I have written the following function in <code>cython</code> to estimate the <em>log-likelihood</em> </p>
  
  <pre><code>@cython.boundscheck(False)
  @cython.wraparound(False)
  def likelihood(double m,
                 double c,
                 np.ndarray[np.double_t, ndim=1, mode='c'] r_mpc not None,
                 np.ndarray[np.double_t, ndim=1, mode='c'] gtan not None,
                 np.ndarray[np.double_t, ndim=1, mode='c'] gcrs not None,
                 np.ndarray[np.double_t, ndim=1, mode='c'] shear_err not None,
                 np.ndarray[np.double_t, ndim=1, mode='c'] beta not None,
                 double rho_c,
                 np.ndarray[np.double_t, ndim=1, mode='c'] rho_c_sigma not None):
      cdef double rscale = rscaleConstM(m, c,rho_c, 200)
  
      cdef Py_ssize_t ngals = r_mpc.shape[0]
  
      cdef np.ndarray[DTYPE_T, ndim=1, mode='c'] gamma_inf = Sh(r_mpc, c, rscale, rho_c_sigma)
      cdef np.ndarray[DTYPE_T, ndim=1, mode='c'] kappa_inf = Kap(r_mpc, c, rscale, rho_c_sigma)
  
  
      cdef double delta = 0.
      cdef double modelg = 0.
      cdef double modsig = 0.
  
      cdef Py_ssize_t i
      cdef DTYPE_T logProb = 0.
  
  
      #calculate logprob
      for i from ngals &gt; i &gt;= 0:
  
          modelg = (beta[i]*gamma_inf[i] / (1 - beta[i]*kappa_inf[i]))
  
          delta = gtan[i] - modelg
  
          modsig = shear_err[i]
  
          logProb = logProb -.5*(delta/modsig)**2  - logsqrt2pi - log(modsig)
  
  
      return logProb
  </code></pre>
  
  <p>but when I run the compiled version of this function, I get the following error message:</p>
  
  <pre><code>  File "Tools.pyx", line 3, in Tools.likelihood 
      def likelihood(double m,
  ValueError: ndarray is not C-contiguous
  </code></pre>
  
  <p>I could not quite understand why this problem occurs??!!! I will appreciate to get any useful tips. </p>