GCOP  1.0
gunicyclecost.h
Go to the documentation of this file.
00001 #ifndef GCOP_GUNICYCLECOST_H
00002 #define GCOP_GUNICYCLECOST_H
00003 
00004 #include "lqcost.h"
00005 #include "gunicycle.h"
00006 #include <limits>
00007 
00008 namespace gcop {
00009   
00010   using namespace std;
00011   using namespace Eigen;
00012   
00013   typedef Matrix<double, 5, 1> Vector5d;
00014   typedef Matrix<double, 5, 5> Matrix5d;
00015   typedef Matrix<double, 5, 2> Matrix52d;
00016   typedef pair<Matrix3d, Vector2d> M3V2d;
00017   
00018 
00019   class GunicycleCost : public LqCost<M3V2d, 5, 2, Dynamic, 7> {
00020   public:
00021     
00022     GunicycleCost(Gunicycle &sys, double tf, const M3V2d &xf);
00023     
00024     double L(double t, const M3V2d &x, const Vector2d &u, double h,
00025              Vector5d *Lx = 0, Matrix5d *Lxx = 0,
00026              Vector2d *Lu = 0, Matrix2d *Luu = 0,
00027              Matrix52d *Lxu = 0);
00028   };
00029 }
00030 
00031 #endif