# NAME

sample_from_gaussian_process_predictive - Samples from the predictive distribution of a Gaussian process
# SYNOPSIS

#include "gp/gp_gaussian_processes.h"
Example compile flags (system dependent):
-DLINUX_X86_64 -DLINUX_X86_64_OPTERON -DGNU_COMPILER
-I/home/kobus/include
-L/home/kobus/misc/load/linux_x86_64_opteron -L/usr/lib/x86_64-linux-gnu
-lKJB -lfftw3 -lgsl -lgslcblas -ljpeg -lSVM -lstdc++ -lpthread -lSLATEC -lg2c -lacml -lacml_mv -lblas -lg2c -lncursesw
int sample_from_gaussian_process_predictive
(
Vector_vector **sample,
const Vector_vector *train_indices,
const Vector_vector *train_data,
double noise_sigma,
const Vector_vector *test_indices,
int (*cov_func)(Matrix **,const Vector *,const Vector *,const void *,int),
const void *hyper_params
);

# DESCRIPTION

This routine samples from the predictive distribution of a Gaussian process,
whose covariance function is given by cov_func. The sample will be in the indices
given by the vectors of test_indices, and will each be of the dimension of the
vectors in train_data.
The necessary information to sample from the predictive distribution is:
train_indices - the indices where the training data comes from
train_data - the training data
noise_sigma - the variance of the gaussian noise process
test_indices - where the prediction will take place.
Naturally, the vectors of test_indices must all be of equal length, as must the
vectors of train_indices and train_data, and cov_func must return square
matrix of dimension d. Also, sample will have test_indices->length vectors,
each of length train_data->elements[0]->length.
If the vector pointed to by sample is NULL, then a vector of the appropriate size
is created. If it exists, but is the wrong size, then it is recreated. Otherwise,
the storage is recycled.
# RETURNS

If the routine fails (due to storage allocation, an error in the
covariance function, or a mismatch in the sizes of the indices), then ERROR
is returned with and error message being set. Otherwise NO_ERROR is returned.
# DISCLAIMER

This software is not adequatedly tested. It is recomended that
results are checked independantly where appropriate.
# AUTHOR

Ernesto Brau
# DOCUMENTER

Ernesto Brau
# SEE ALSO

fill_covariance_matrix
,
fill_mean_vector
,
sample_from_gaussian_process_prior
,
sample_from_gaussian_process_prior_i
,
sample_from_gaussian_process_predictive_i
,
get_gaussian_process_predictive_distribution
,
get_gaussian_process_predictive_distribution_i
,
get_gaussian_process_posterior_distribution
,
get_gaussian_process_posterior_distribution_i
,
compute_gaussian_process_likelihood
,
compute_gaussian_process_likelihood_i
,
compute_gaussian_process_marginal_likelihood
,
compute_gaussian_process_marginal_likelihood_i
,
compute_gaussian_process_marginal_log_likelihood
,
compute_gaussian_process_marginal_log_likelihood_i