gain-hyperbolic.hh
Go to the documentation of this file.
1 /*
2  * Copyright 2010,
3  * François Bleibel,
4  * Olivier Stasse,
5  *
6  * CNRS/AIST
7  *
8  */
9 
10 #ifndef __SOT_GAIN_HYPERBOLIC_HH__
11 #define __SOT_GAIN_HYPERBOLIC_HH__
12 
13 /* --------------------------------------------------------------------- */
14 /* --- INCLUDE --------------------------------------------------------- */
15 /* --------------------------------------------------------------------- */
16 
17 /* Matrix */
19 
20 /* SOT */
22 #include <dynamic-graph/entity.h>
23 
24 /* --------------------------------------------------------------------- */
25 /* --- API ------------------------------------------------------------- */
26 /* --------------------------------------------------------------------- */
27 
28 #if defined(WIN32)
29 #if defined(gain_hyperbolic_EXPORTS)
30 #define SOTGAINHYPERBOLIC_EXPORT __declspec(dllexport)
31 #else
32 #define SOTGAINHYPERBOLIC_EXPORT __declspec(dllimport)
33 #endif
34 #else
35 #define SOTGAINHYPERBOLIC_EXPORT
36 #endif
37 
38 /* --------------------------------------------------------------------- */
39 /* --- CLASS ----------------------------------------------------------- */
40 /* --------------------------------------------------------------------- */
41 
42 namespace dynamicgraph {
43 namespace sot {
44 
54  public: /* --- CONSTANTS --- */
55  /* Default values. */
56  static const double ZERO_DEFAULT; // = 0.1
57  static const double INFTY_DEFAULT; // = 0.1
58  static const double TAN_DEFAULT; // = 1.
59 
60  public: /* --- ENTITY INHERITANCE --- */
61  static const std::string CLASS_NAME;
62  virtual void display(std::ostream &os) const;
63  virtual const std::string &getClassName(void) const { return CLASS_NAME; }
64 
65  protected:
66  /* Parameters of the hyperbolic-gain function:
67  * lambda (x) = a * exp (-b*x) + c. */
68  double coeff_a;
69  double coeff_b;
70  double coeff_c;
71  double coeff_d;
72 
73  public: /* --- CONSTRUCTORS ---- */
74  GainHyperbolic(const std::string &name);
75  GainHyperbolic(const std::string &name, const double &lambda);
76  GainHyperbolic(const std::string &name, const double &valueAt0,
77  const double &valueAtInfty, const double &tanAt0,
78  const double &decal0);
79 
80  public: /* --- INIT --- */
81  inline void init(void) { init(ZERO_DEFAULT, INFTY_DEFAULT, TAN_DEFAULT, 0); }
82  inline void init(const double &lambda) { init(lambda, lambda, 1., 0); }
89  void init(const double &valueAt0, const double &valueAtInfty,
90  const double &tanAt0, const double &decal0);
91  void forceConstant(void);
92 
93  public: /* --- SIGNALS --- */
96 
97  protected:
98  double &computeGain(double &res, sigtime_t t);
99 };
100 
101 } /* namespace sot */
102 } /* namespace dynamicgraph */
103 
104 #endif // #ifndef __SOT_GAIN_HYPERBOLIC_HH__
init
void init(bool compute_local_aabb=true)
dynamicgraph::sot::GainHyperbolic::errorSIN
dynamicgraph::SignalPtr< dynamicgraph::Vector, sigtime_t > errorSIN
Definition: gain-hyperbolic.hh:94
dynamicgraph::SignalPtr< dynamicgraph::Vector, sigtime_t >
dynamicgraph
dynamicgraph::Entity
dynamicgraph::sot::GainHyperbolic::CLASS_NAME
static const std::string CLASS_NAME
Definition: gain-hyperbolic.hh:61
dynamicgraph::sot::GainHyperbolic::init
void init(void)
Definition: gain-hyperbolic.hh:81
dynamicgraph::sot::GainHyperbolic::coeff_d
double coeff_d
Definition: gain-hyperbolic.hh:71
dynamicgraph::sot::GainHyperbolic::ZERO_DEFAULT
static const double ZERO_DEFAULT
Definition: gain-hyperbolic.hh:56
dynamicgraph::sot::GainHyperbolic::TAN_DEFAULT
static const double TAN_DEFAULT
Definition: gain-hyperbolic.hh:58
dynamicgraph::sot::GainHyperbolic::init
void init(const double &lambda)
Definition: gain-hyperbolic.hh:82
dynamicgraph::sigtime_t
int64_t sigtime_t
dynamicgraph::sot::GainHyperbolic::coeff_a
double coeff_a
Definition: gain-hyperbolic.hh:68
all-signals.h
display
linear-algebra.h
dynamicgraph::sot::GainHyperbolic::getClassName
virtual const std::string & getClassName(void) const
Definition: gain-hyperbolic.hh:63
dynamicgraph::SignalTimeDependent< double, sigtime_t >
dynamicgraph::sot::GainHyperbolic::coeff_c
double coeff_c
Definition: gain-hyperbolic.hh:70
SOTGAINHYPERBOLIC_EXPORT
#define SOTGAINHYPERBOLIC_EXPORT
Definition: gain-hyperbolic.hh:35
dynamicgraph::sot::GainHyperbolic::coeff_b
double coeff_b
Definition: gain-hyperbolic.hh:69
t
Transform3f t
dynamicgraph::sot::GainHyperbolic::gainSOUT
dynamicgraph::SignalTimeDependent< double, sigtime_t > gainSOUT
Definition: gain-hyperbolic.hh:95
dynamicgraph::sot::GainHyperbolic
Hyperbolic gain. It follows the law.
Definition: gain-hyperbolic.hh:53
compile.name
name
Definition: compile.py:23
dynamicgraph::sot::GainHyperbolic::INFTY_DEFAULT
static const double INFTY_DEFAULT
Definition: gain-hyperbolic.hh:57


sot-core
Author(s): Olivier Stasse, ostasse@laas.fr
autogenerated on Tue Oct 24 2023 02:26:31