GCOP
1.0
|
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