Generates samples from a Gaussian process.
samp = ogpsample(x, approx, kxx, kxbv, rseed);
ogpsample(x) takes a GLOBAL Spase OGP data structure net
together with a matrix x of input vectors and returns a matrix of
realisations of the marginal Gaussian distribution at the inputs x
samp = ogpsample(net, x, approx),with the binary
indicator approx set to nonzero,samples from a restricted subspace by
inverting only the covariance matrix correpsonding to the BV set and
ignoring the Schuur complement of Kxx with respect to Kbv.
samp = ogpsample(net, x_inputs, approx, kxx, kxbv) uses the
pre-computed prior covariance matrices kxx and kxbv to generate
the samples. This increases efficiency if several calls to ogpsample
are made.
The time required for this sampling procedure is cubic with respect to the size of the inputsdue to the inversion of the covariance matrix. Use it with caution.
If approx is used, then there are ``only'' as many random variables
generated as many BV points are in the Gaussian process structure
net, meaning that matrix inversion of the size of the BV set is
to be performed.
samp = ogpsample(net, x, approx, kxx, kxbv, rseed) includes the option
of specifying the seed for the random number generator. Used to generate the
same random numbers in repeated samples -- for different kernels. If the
matrices are not computed, then empty matrices [] should be used instead.
Copyright (c) Lehel Csató (2001-2004)