Sampling from Sine Kernel and Airy Kernel A determinantal process on the line is a random collection of points on $\mathbb{R}$ such that the probability of  $x_1, \dots, x_n$ lying on the random set is $\det (K(x_i, x_j))_{(i,j)}$.  Examples of determinantal processes include the eigenvalues of random Hermitean matrices with Gaussian entries and non-intersecting random walks.  I'm interested in sampling random points on the line according to the sine kernel $k(x,y) = \frac{\sin(x-y)}{\pi(x-y)}$ or the Airy Kernel (see p 6 of the slides) which are related to the Gaussian Unitary Ensemble.
I thought there are algorithms for sampling from general discrete and continuous determinantal processes.  Maybe it's be better to sample a processes directly using Coupling from the Past and other procedures.
Mainly,

*

*how does one sample points on the real line with respect to the sine kernel?

*is there a general way of sampling determinantal processes based or arbitrary kernel?

It is known these types of processes demonstrate repulsion (compared to the Poisson process) and I would like to demonstrate this in the classroom.
 A: Just in case someone is still interested. The algorithm of Hough, Krishnapur, Peres and Virag was implemented here
http://arxiv.org/abs/1404.0071
in the case of eigenvalues of random matrices.  The methodology uses Chebyshev approximations to do inverse sampling of the marginal distributions. The code is available here in the Julia RMT package:
https://github.com/jiahao/RandomMatrices.jl
A: For a general algorithm for simulating points from a determinantal process, see Algorithm 18 in the paper "Determinantal Processes and Independence" by Hough, Krishnapur, Peres and Virag:
arXiv link
This algorithm was actually implemented by some physicists at Princeton (I believe) but I am not sure if their code is publicly available.
For the sine kernel, depending on how many points you want to sample, Matlab is pretty good at computing eigenvalues of a large GUE matrix in a decently short amount of time. That would require much less work than implementing the algorithm above.
A: I'm less enthusiastic than the previous answers concerning how your question is easily solvable: What tells the HKPV algorithm mentioned above is that you can exactly sample a determinantal point process (DPP) provided your kernel is a projection kernel of finite rank, or when it is a contraction with explicit eigenvalues/eigenvectors. The problem is that the sine kernel does not satisfy any of these hypothesis (neither Airy). 
More precisely, the sine kernel $K_{\sin}(x,y)$ is a projection kernel but not of finite rank; the associated DPP generates  infinite configurations a.s. For sampling you may fix a compact window $A$ and then consider the restriction of the operator $K_{\sin}$ restricted to $L^2(A)$. It is not a projection, but a contraction. If you can find an explicit eigenvalue/eigenvector decomposition for $K_{\sin}$ on $L^2(A)$, then you can sample the DPP with HKPV algorithm, although you may have to stop playing the Bernoulli's after a finite number of steps. Same situation for $K_{\mathrm{Airy}}$.
