<commit_before>
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 * Copyright Projet JRL-Japan, 2007
 *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 *
 * File:      Kalman.h
 * Project:   SOT
 * Author:    <NAME>
 *
 * Version control
 * ===============
 *
 *  $Id$
 *
 * Description
 * ============
 *
 *
 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

#ifndef __SOT_KALMAN_H
#define __SOT_KALMAN_H

/* -------------------------------------------------------------------------- */
/* --- INCLUDE -------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */


/* Matrix */
#include <MatrixAbstractLayer/boost.h>
namespace ml = maal::boost;

/* SOT */
#include <dynamic-graph/all-signals.h>
#include <dynamic-graph/entity.h>
#include <sot-core/constraint.h>

/* --------------------------------------------------------------------- */
/* --- API ------------------------------------------------------------- */
/* --------------------------------------------------------------------- */

#if defined (WIN32) 
#  if defined (kalman_EXPORTS)
#    define SOTKALMAN_EXPORT __declspec(dllexport)
#  else  
#    define SOTKALMAN_EXPORT __declspec(dllimport)
#  endif 
#else
#  define SOTKALMAN_EXPORT
#endif

/* -------------------------------------------------------------------------- */
/* --- CLASSE --------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */

namespace sot {

namespace dg = dynamicgraph;

class SOTKALMAN_EXPORT Kalman
:public dg::Entity
{
 public: 
  static const std::string CLASS_NAME;
  virtual const std::string& getClassName( void ) const { return CLASS_NAME; }
  

protected:
  unsigned int size_state ;
  unsigned int size_measure ;
  double dt;

 public: 

  dg::SignalPtr< ml::Vector,int > measureSIN;         // Y=X_mes=H.X
  dg::SignalPtr< ml::Matrix,int > modelTransitionSIN; // A
  dg::SignalPtr< ml::Matrix,int > modelMeasureSIN;    // H
  dg::SignalPtr< ml::Matrix,int > noiseTransitionSIN; // Q
  dg::SignalPtr< ml::Matrix,int > noiseMeasureSIN;    // R
  dg::SignalPtr< ml::Matrix,int > modelControlSIN;    // B
  dg::SignalPtr< ml::Vector,int > controlSIN;         // u
<commit_msg>kalman must use the API of sot-core<commit_after>
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 * Copyright Projet JRL-Japan, 2007
 *+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 *
 * File:      Kalman.h
 * Project:   SOT
 * Author:    <NAME>
 *
 * Version control
 * ===============
 *
 *  $Id$
 *
 * Description
 * ============
 *
 *
 * ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

#ifndef __SOT_KALMAN_H
#define __SOT_KALMAN_H

/* -------------------------------------------------------------------------- */
/* --- INCLUDE -------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */


/* Matrix */
#include <MatrixAbstractLayer/boost.h>
namespace ml = maal::boost;

/* SOT */
#include <dynamic-graph/all-signals.h>
#include <dynamic-graph/entity.h>
#include <sot-core/constraint.h>
#include <sot-core/sot-core-api.h>

/* -------------------------------------------------------------------------- */
/* --- CLASSE --------------------------------------------------------------- */
/* -------------------------------------------------------------------------- */

namespace sot {

namespace dg = dynamicgraph;

class SOT_CORE_EXPORT Kalman
:public dg::Entity
{
 public: 
  static const std::string CLASS_NAME;
  virtual const std::string& getClassName( void ) const { return CLASS_NAME; }
  

protected:
  unsigned int size_state ;
  unsigned int size_measure ;
  double dt;

 public: 

  dg::SignalPtr< ml::Vector,int > measureSIN;         // Y=X_mes=H.X
  dg::SignalPtr< ml::Matrix,int > modelTransitionSIN; // A
  dg::SignalPtr< ml::Matrix,int > modelMeasureSIN;    // H
  dg::SignalPtr< ml::Matrix,int > noiseTransitionSIN; // Q
  dg::SignalPtr< ml::Matrix,int > noiseMeasureSIN;    // R
  dg::SignalPtr< ml::Matrix,int > modelControlSIN;    // B
  dg::SignalPtr< ml::Vector,int > controlSIN;         // u

{'fraction_non_alphanumeric': 0.44593345656192235, 'fraction_numerical': 0.0023105360443622922, 'mean_word_length': 1.4879310344827585, 'pattern_counts': {'":': 0, '<': 28, '<?xml version=': 0, '>': 28, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '7188473', 'n_tokens_mistral': 1222, 'n_tokens_neox': 1123, 'n_words': 217}