 __constant__ int c_ndata; // # of data points
 __constant__ int c_mfeat; // # of measured features per data point
 __constant__ int c_pchi; // # of characteristics per data point
+__constant__ int c_dim_cholfact; // # size of cholesky factor for characteristic proposal covariance
 __constant__ int c_dim_theta; // # dimension of population parameters
 
 // Function to compute the rank-1 Cholesky update/downdate. Note that this is done in place.


		// place array sizes constant memory
        CUDA_CHECK_RETURN(cudaMemcpyToSymbol(&c_ndata, &ndata, sizeof(ndata)));
        CUDA_CHECK_RETURN(cudaMemcpyToSymbol(&c_mfeat, &mfeat, sizeof(ndata)));
        CUDA_CHECK_RETURN(cudaMemcpyToSymbol(&c_pchi, &pchi, sizeof(ndata)));

		thrust::fill(h_cholfact.begin(), h_cholfact.end(), 0.0);
		d_cholfact = h_cholfact;

	}

protected:
	// random number generator state for this characteristic
	curandState& state;
	// MCMC sampler parameters
