19 #ifndef SNARK_GAUSSIAN_PROCESS_
20 #define SNARK_GAUSSIAN_PROCESS_
22 #include <boost/function.hpp>
24 #include <Eigen/Eigen>
33 typedef boost::function< double ( const Eigen::VectorXd&, const Eigen::VectorXd& ) >
covariance;
37 ,
const Eigen::VectorXd& targets
39 ,
double self_covariance = 0 );
42 void evaluate(
const Eigen::MatrixXd& domains
43 , Eigen::VectorXd& means
44 , Eigen::VectorXd& variances )
const;
47 std::pair< double, double >
evaluate(
const Eigen::MatrixXd& domain )
const;
50 Eigen::MatrixXd domains_;
51 Eigen::VectorXd targets_;
53 double self_covariance_;
56 Eigen::LLT< Eigen::MatrixXd > L_;
57 Eigen::VectorXd alpha_;
62 #endif // #ifndef SNARK_GAUSSIAN_PROCESS_