 	  }
 	  else {
 		// keep the half-warp
-
 		if (data_per > 1) {
 		  // TODO: should ask what is the half warp size instead of 16
 		  if (params_per > 16) {

  PMatrix_init(&pparams, d_params, nparams,
               data_dim * (data_dim + 3) / 2 + 2, param_stride);

  printf("data dim: %d\n", pdata.cols);
  printf("data padded dim: %d\n", pdata.stride);

  invoke_mvnpdf(pdata, pparams, d_pdf);
  d_to_h(d_pdf, h_pdf, total_obs * nparams);

            for(int i=0; i<D; i++) {
                float sum = 0;
                for(int j=0; j<=i; j++) {
                  sum += *tSigma * (tData[j] - tMean[j]); // xx[j] is always calculated since j <= i
                  tSigma++;
                }
