GCOP  1.0
gp.h
Go to the documentation of this file.
00001 // This file is part of libgcop, a library for Geometric Control, Optimization, and Planning (GCOP)
00002 //
00003 // Copyright (C) 2004-2014 Marin Kobilarov <marin(at)jhu.edu>
00004 //
00005 // This Source Code Form is subject to the terms of the Mozilla
00006 // Public License v. 2.0. If a copy of the MPL was not distributed
00007 // with this file, You can obtain one at http://mozilla.org/MPL/2.0/.
00008 
00009 #ifndef GCOP_GP_H
00010 #define GCOP_GP_H
00011 
00012 #include <Eigen/Dense>
00013 
00014 namespace gcop {
00015   class GP {
00016   public:
00022     GP(int d, int n = 0);
00023     
00024     virtual ~GP();
00025     
00029     virtual void Sample();
00030     
00037     bool Add(const Eigen::VectorXd &x,
00038              double f);    
00039     
00043     void Train();
00044     
00050     void Train(const Eigen::MatrixXd &Xs, 
00051                const Eigen::VectorXd &fs);
00052     
00059     double Predict(const Eigen::VectorXd &x, 
00060                    double *s = 0) const;
00061     
00068     double SqExp(const Eigen::VectorXd &xa, 
00069                  const Eigen::VectorXd &xb) const;
00070     
00076     double LogL(double dll[2] = 0);
00077 
00084     double PI(const Eigen::VectorXd &x, double fmin) const;
00085 
00090     double OptParams();
00091        
00092     int d;  
00093     int n;  
00094     
00095     Eigen::MatrixXd Xs;   
00096     Eigen::VectorXd fs;   
00097     
00098     Eigen::MatrixXd K;  
00099     Eigen::MatrixXd Ki;
00100     
00101     Eigen::MatrixXd L;
00102     
00103     Eigen::VectorXd a;
00104     
00105     double l;
00106     double s;
00107     
00108     double sigma;
00109     
00110     bool cf;   
00111 
00112     bool eps;  
00113     
00114   };
00115 }
00116 
00117 #endif