nonlinearanalyticmeasurementmodel_gaussianuncertainty_ginac.cpp
Go to the documentation of this file.
00001 // $Id: nonlinearanalyticmeasurementmodel_gaussianuncertainty_ginac.cpp 29495 2008-08-13 12:57:49Z tdelaet $
00002 // Copyright (C) 2003 Klaas Gadeyne <first dot last at gmail dot com>
00003 //                    Wim Meeussen  <wim dot meeussen at mech dot kuleuven dot ac dot be>
00004 //
00005 // This program is free software; you can redistribute it and/or modify
00006 // it under the terms of the GNU Lesser General Public License as published by
00007 // the Free Software Foundation; either version 2.1 of the License, or
00008 // (at your option) any later version.
00009 //
00010 // This program is distributed in the hope that it will be useful,
00011 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00013 // GNU Lesser General Public License for more details.
00014 //
00015 // You should have received a copy of the GNU Lesser General Public License
00016 // along with this program; if not, write to the Free Software
00017 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
00018 //
00019 
00020 #include "../sample/sample.h"
00021 #include "nonlinearanalyticmeasurementmodel_gaussianuncertainty_ginac.h"
00022 
00023 namespace BFL
00024 {
00025 
00026   NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac::NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac
00027   (NonLinearAnalyticConditionalGaussian_Ginac* const pdf)
00028     : AnalyticMeasurementModelGaussianUncertainty( new NonLinearAnalyticConditionalGaussian_Ginac( *pdf ) )
00029   {}
00030 
00031 
00032   // copy constructor: Not implemented yet
00033   /*
00034   NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac::NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac
00035   (const NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac& m)
00036     : AnalyticMeasurementModelGaussianUncertainty( new NonLinearAnalyticConditionalGaussian_Ginac( (NonLinearAnalyticConditionalGaussian_Ginac*) m.MeasurementPdfGet()) )
00037   {}
00038   */
00039 
00040   NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac::~NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac() {}
00041 
00042   /*
00043   std::ostream& operator<< (std::ostream& os, NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac& m)
00044   {
00045     os << "\nMeasurementModel:"  << endl;
00046     os << *(m.MeasurementPdfGet());
00047     return os;
00048   }
00049   */
00050 
00051 
00052   MatrixWrapper::ColumnVector
00053   NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac::PredictionGet(const MatrixWrapper::ColumnVector& u,
00054                                                                       const MatrixWrapper::ColumnVector& x)
00055   {
00056     MeasurementPdfGet()->ConditionalArgumentSet(1,u);
00057     MeasurementPdfGet()->ConditionalArgumentSet(0,x);
00058     return MeasurementPdfGet()->ExpectedValueGet();
00059   }
00060 
00061 
00062   MatrixWrapper::SymmetricMatrix
00063   NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac::CovarianceGet(const MatrixWrapper::ColumnVector& u,
00064                                                                       const MatrixWrapper::ColumnVector& x)
00065   {
00066     MeasurementPdfGet()->ConditionalArgumentSet(1,u);
00067     MeasurementPdfGet()->ConditionalArgumentSet(0,x);
00068     return MeasurementPdfGet()->CovarianceGet();
00069   }
00070 
00071 
00072   MatrixWrapper::Matrix
00073   NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac::df_dxGet(const MatrixWrapper::ColumnVector& u,
00074                                                                        const MatrixWrapper::ColumnVector& x)
00075   {
00076     MeasurementPdfGet()->ConditionalArgumentSet(1,u);
00077     MeasurementPdfGet()->ConditionalArgumentSet(0,x);
00078     return ((AnalyticConditionalGaussian *) MeasurementPdfGet())->dfGet(0);
00079   }
00080 
00081   GiNaC::matrix
00082   NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac::FunctionGet()
00083   {
00084     return ((NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac *) MeasurementPdfGet())->FunctionGet();
00085   }
00086 
00087   vector<GiNaC::symbol>
00088   NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac::StateGet()
00089   {
00090     return ((NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac *)MeasurementPdfGet())->StateGet();
00091   }
00092 
00093   vector<GiNaC::symbol>
00094   NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac::InputGet()
00095   {
00096     return ((NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac *) MeasurementPdfGet())->InputGet();
00097   }
00098 
00099   vector<GiNaC::symbol>
00100   NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac::ConditionalGet()
00101   {
00102     return ((NonLinearAnalyticMeasurementModelGaussianUncertainty_Ginac *) MeasurementPdfGet())->ConditionalGet();
00103   }
00104 
00105 } // End namespace BFL


bfl
Author(s): Klaas Gadeyne, Wim Meeussen, Tinne Delaet and many others. See web page for a full contributor list. ROS package maintained by Wim Meeussen.
autogenerated on Sun Oct 5 2014 22:29:53