|
ocra-recipes
Doxygen documentation for the ocra-recipes repository
|
LinearFunction class. More...
#include <LinearFunction.h>
Public Types | |
| typedef Function | functionType_t |
Public Member Functions | |
| template<class Derived , class VectorBase > | |
| LinearFunction (Variable &x, const MatrixBase< Derived > &A, const VectorBase &b) | |
| ~LinearFunction () | |
| void | invalidateb (int timestamp) |
| const MatrixXd & | getA () const |
| const VectorXd & | getb () const |
| void | changeA (const MatrixXd &A) |
| void | changeb (const VectorXd &b) |
Public Member Functions inherited from ocra::Function | |
| virtual | ~Function () |
| int | getDimension () const |
| virtual void | updateFdot () const |
| virtual void | updateFddot () const |
| virtual void | updateJdotXdot () const |
| const Variable & | getVariable () const |
| Variable & | getVariable () |
| template<eFunctionAbility Ability> | |
| void | invalidate () |
| void | invalidateAll (int timestamp) |
| void | invalidateAll () |
| template<eFunctionAbility Ability> | |
| bool | isValid () const |
| template<eFunctionAbility Ability> | |
| bool | canCompute () const |
| template<eFunctionAbility Ability> | |
| const IFunction< Ability >::return_type & | get () const |
| template<eFunctionAbility Ability> | |
| IFunction< Ability >::return_sub_type | get (int index) const |
| const VectorXd & | getValue () const |
| double | getValue (int index) const |
| const MatrixXd & | getJacobian () const |
| MatrixXdRow | getJacobian (int index) const |
Public Member Functions inherited from ocra::ObserverSubject | |
| ObserverSubject () | |
| virtual | ~ObserverSubject () |
Public Member Functions inherited from ocra::Observer | |
| virtual | ~Observer () |
| template<int EVT> | |
| void | bind (SubjectBase< EVT > &subject) |
| Call this method to automatically propagate observed events to observers connected to the subject given in argument. More... | |
| template<int EVT> | |
| void | stopPropagation () |
Public Member Functions inherited from ocra::ObserverBase< EVT_RESIZE > | |
| void | bind (subject_type &subject) |
| Call this method to automatically propagate observed events to observers connected to the subject given in argument. More... | |
Public Member Functions inherited from ocra::ObserverBase< EVT_CHANGE_DEPENDENCIES > | |
| void | bind (subject_type &subject) |
| Call this method to automatically propagate observed events to observers connected to the subject given in argument. More... | |
Public Member Functions inherited from ocra::ObserverBase< EVT_CHANGE_VALUE > | |
| void | bind (subject_type &subject) |
| Call this method to automatically propagate observed events to observers connected to the subject given in argument. More... | |
Public Member Functions inherited from ocra::Subject | |
| virtual | ~Subject () |
| template<int EVT, class Derived , class Base > | |
| void | connect (Derived &object, void(Base::*newCallback)(int)) const |
| Call this method to register a non-static method as a callback. More... | |
| template<int EVT> | |
| void | connect (void(*newCallback)(int)) const |
| Call this method to register a free function as a callback. More... | |
| template<int EVT, class Derived , class Base > | |
| void | disconnect (Derived &object, void(Base::*callbackToErase)(int)) const |
| Disconnect non-static method. More... | |
| template<int EVT> | |
| void | disconnect (void(*callbackToErase)(int)) const |
| Disconnect free function. More... | |
| template<int EVT> | |
| void | propagate () const |
| template<int EVT> | |
| void | propagate (int timestamp) const |
Public Member Functions inherited from ocra::SubjectBase< EVT_RESIZE > | |
| void | connect (T &object, typename SubjectBaseTraits< EVT, T >::callback_type newCallback) const |
| Call this method to register a non-static method as a callback. More... | |
| void | connect (typename SubjectBaseTraits< EVT, void >::callback_type newCallback) const |
| Call this method to register a free function as a callback. More... | |
| void | disconnect (T &object, typename SubjectBaseTraits< EVT, T >::callback_type callback) const |
| Disconnect non-static method. More... | |
| void | disconnect (typename SubjectBaseTraits< EVT, void >::callback_type callbackToErase) const |
| Disconnect free function. More... | |
| void | propagate (int timestamp) const |
| void | propagate () const |
Public Member Functions inherited from ocra::SubjectBase< EVT_CHANGE_DEPENDENCIES > | |
| void | connect (T &object, typename SubjectBaseTraits< EVT, T >::callback_type newCallback) const |
| Call this method to register a non-static method as a callback. More... | |
| void | connect (typename SubjectBaseTraits< EVT, void >::callback_type newCallback) const |
| Call this method to register a free function as a callback. More... | |
| void | disconnect (T &object, typename SubjectBaseTraits< EVT, T >::callback_type callback) const |
| Disconnect non-static method. More... | |
| void | disconnect (typename SubjectBaseTraits< EVT, void >::callback_type callbackToErase) const |
| Disconnect free function. More... | |
| void | propagate (int timestamp) const |
| void | propagate () const |
Public Member Functions inherited from ocra::SubjectBase< EVT_CHANGE_VALUE > | |
| void | connect (T &object, typename SubjectBaseTraits< EVT, T >::callback_type newCallback) const |
| Call this method to register a non-static method as a callback. More... | |
| void | connect (typename SubjectBaseTraits< EVT, void >::callback_type newCallback) const |
| Call this method to register a free function as a callback. More... | |
| void | disconnect (T &object, typename SubjectBaseTraits< EVT, T >::callback_type callback) const |
| Disconnect non-static method. More... | |
| void | disconnect (typename SubjectBaseTraits< EVT, void >::callback_type callbackToErase) const |
| Disconnect free function. More... | |
| void | propagate (int timestamp) const |
| void | propagate () const |
Public Member Functions inherited from ocra::IFunctionProperties | |
| bool | hasSeparableTimeDependancy (void) const |
| eFunctionLinearity | getType (void) const |
| eFunctionConvexity | getConvexityProperty (void) const |
| int | getContinuityProperty (void) const |
| const std::string & | getProperty (int i) const |
| int | getNumberOfProperties (void) const |
| bool | hasProperty (const std::string &functionProperty) const |
| bool | isExplicitlyTimeDependant (void) const |
Public Member Functions inherited from ocra::NamedInstance | |
| NamedInstance (const std::string &name) | |
| const std::string & | getName () const |
| virtual | ~NamedInstance () |
Public Member Functions inherited from ocra::AbilitySet | |
| AbilitySet & | add (eFunctionAbility prop) |
| AbilitySet & | remove (eFunctionAbility prop) |
Protected Member Functions | |
| LinearFunction (Variable &x, int dimension) | |
| virtual void | updateb () const |
| virtual void | doUpdateInputSizeEnd () |
| virtual void | updateValue () const |
| virtual void | updateJacobian () const |
| virtual void | doChangeA (const MatrixXd &A) |
| virtual void | doChangeb (const VectorXd &b) |
| void | inhibitPropagationFromb () const |
| void | desinhibitPropagationFromb () const |
Protected Member Functions inherited from ocra::Function | |
| Function (Variable &x, int dimension, eFunctionLinearity linearity=LINEARITY_UNDEFINED, eFunctionConvexity convexity=CONVEXITY_UNDEFINED, int continuity=CONTINUITY_UNKNOWN, bool explicitlyTimeDependant=false, bool separableTimeDependancy=true) | |
| Function Constructor. More... | |
| void | disconnectVariable () |
| void | changeFunctionDimension (int newDimension) |
| void | updateInputSize (int timestamp) |
| void | resize () |
| virtual int | computeDimensionFromInputSize () const |
| virtual void | doUpdateInputSizeBegin () |
| virtual void | doUpdateDimensionBegin (int newDimension) |
| virtual void | doUpdateDimensionEnd (int oldDimension) |
Protected Member Functions inherited from ocra::ObserverBase< EVT_RESIZE > | |
| void | stopPropagation () |
| Call this method from your callbacks to avoid propagation to the bound subject (if any). More... | |
| ObserverBase () | |
| ~ObserverBase () | |
Protected Member Functions inherited from ocra::ObserverBase< EVT_CHANGE_DEPENDENCIES > | |
| void | stopPropagation () |
| Call this method from your callbacks to avoid propagation to the bound subject (if any). More... | |
| ObserverBase () | |
| ~ObserverBase () | |
Protected Member Functions inherited from ocra::ObserverBase< EVT_CHANGE_VALUE > | |
| void | stopPropagation () |
| Call this method from your callbacks to avoid propagation to the bound subject (if any). More... | |
| ObserverBase () | |
| ~ObserverBase () | |
Protected Member Functions inherited from ocra::SubjectBase< EVT_RESIZE > | |
| SubjectBase () | |
| ~SubjectBase () | |
Protected Member Functions inherited from ocra::SubjectBase< EVT_CHANGE_DEPENDENCIES > | |
| SubjectBase () | |
| ~SubjectBase () | |
Protected Member Functions inherited from ocra::SubjectBase< EVT_CHANGE_VALUE > | |
| SubjectBase () | |
| ~SubjectBase () | |
Protected Member Functions inherited from ocra::IFunctionProperties | |
| IFunctionProperties (eFunctionLinearity linearity=LINEARITY_UNDEFINED, eFunctionConvexity convexity=CONVEXITY_UNDEFINED, int continuity=CONTINUITY_UNKNOWN, bool explicitlyTimeDependant=false, bool separableTimeDependancy=true) | |
| IFunctionProperties Constructor. More... | |
| void | changeType (eFunctionLinearity newType) |
| void | changeConvexityProperty (eFunctionConvexity newProperty) |
| void | changeContinuityProperty (int newProperty) |
| void | addProperty (const std::string &functionProperty) |
| void | removeProperty (const std::string &functionProperty) |
| void | changeExplicitTimeDependancy (bool b) |
| void | changeSeparableTimeDependancy (bool b) |
Protected Member Functions inherited from ocra::AbilitySet | |
| AbilitySet (const std::vector< bool > &usageSet) | |
| const std::vector< bool > & | getUsageSet () const |
| AbilitySet (eFunctionAbility prop0=FUN_VALUE, eFunctionAbility prop1=FUN_VALUE) | |
| AbilitySet (eFunctionAbility prop0, eFunctionAbility prop1, eFunctionAbility prop2, eFunctionAbility prop3=FUN_VALUE, eFunctionAbility prop4=FUN_VALUE) | |
| AbilitySet (eFunctionAbility prop0, eFunctionAbility prop1, eFunctionAbility prop2, eFunctionAbility prop3, eFunctionAbility prop4, eFunctionAbility prop5, eFunctionAbility prop6=FUN_VALUE, eFunctionAbility prop7=FUN_VALUE, eFunctionAbility prop8=FUN_VALUE, eFunctionAbility prop9=FUN_VALUE) | |
Protected Member Functions inherited from ocra::CoupledInputOutputSize | |
| CoupledInputOutputSize (bool coupledInputOutputSize) | |
| bool | inputAndOutputSizesAreCoupled () const |
Protected Attributes | |
| VectorXd | _b |
| bool | _bIsUpToDate |
Protected Attributes inherited from ocra::Function | |
| Variable & | x |
| VectorXd & | _value |
| MatrixXd & | _jacobian |
| const int & | _dim |
Additional Inherited Members | |
Protected Types inherited from ocra::ObserverBase< EVT_RESIZE > | |
| typedef SubjectBase< EVT > | subject_type |
| typedef InvokerBase< EVT > | invoker_type |
Protected Types inherited from ocra::ObserverBase< EVT_CHANGE_DEPENDENCIES > | |
| typedef SubjectBase< EVT > | subject_type |
| typedef InvokerBase< EVT > | invoker_type |
Protected Types inherited from ocra::ObserverBase< EVT_CHANGE_VALUE > | |
| typedef SubjectBase< EVT > | subject_type |
| typedef InvokerBase< EVT > | invoker_type |
LinearFunction class.
A linear function Ax+b. The class is implemented for A et b are constant, but can be overloaded for A and b being functions of other parameters. The updateValue ensure to take A and b up-to-date (provided the methods to update are correct).
Definition at line 37 of file LinearFunction.h.
Definition at line 42 of file LinearFunction.h.
|
protected |
A light constructor for derived class
Definition at line 11 of file LinearFunction.cpp.
|
inline |
Constructor for A and b constant
Definition at line 118 of file LinearFunction.h.
| ocra::LinearFunction::~LinearFunction | ( | ) |
Definition at line 22 of file LinearFunction.cpp.
| void ocra::LinearFunction::changeA | ( | const MatrixXd & | A | ) |
Definition at line 41 of file LinearFunction.cpp.
| void ocra::LinearFunction::changeb | ( | const VectorXd & | b | ) |
Definition at line 49 of file LinearFunction.cpp.
|
protected |
Definition at line 101 of file LinearFunction.cpp.
|
protectedvirtual |
Methods to be called in ChangeA and Change b
Reimplemented in ocra::DiagonalLinearFunction, ocra::DoubleDiagonalLinearFunction, ocra::IdentityFunction, and ocra::SumOfLinearFunctions.
Definition at line 57 of file LinearFunction.cpp.
|
protectedvirtual |
Reimplemented in ocra::SumOfLinearFunctions.
Definition at line 62 of file LinearFunction.cpp.
|
protectedvirtual |
This methods ensures _b has the good size at the end of a resize, yet it will not be called in LinearFunction itself because the class does not overload doUpdateInputSizeBegin() which throws an runtime_error by default.
Reimplemented from ocra::Function.
Reimplemented in ocra::DiagonalLinearFunction, ocra::DoubleDiagonalLinearFunction, ocra::FullDynamicEquationFunction, ocra::IdentityFunction, ocra::DynamicEquationFunction, and ocra::VariableChiFunction.
Definition at line 90 of file LinearFunction.cpp.
| const MatrixXd & ocra::LinearFunction::getA | ( | void | ) | const |
getters/setters for A and b
Definition at line 26 of file LinearFunction.cpp.
| const VectorXd & ocra::LinearFunction::getb | ( | void | ) | const |
Definition at line 31 of file LinearFunction.cpp.
|
protected |
Inhibit/Desinhibit the fact that a call to invalidateb triggers a EVT_CHANGE_VALUE event, which is done by default. This is meant to prevent multiple propagation of EVT_CHANGE_VALUE in case of complex update dependencies.
Definition at line 96 of file LinearFunction.cpp.
| void ocra::LinearFunction::invalidateb | ( | int | timestamp | ) |
Invalidate the value of b. Meant to be used as a callback.
Definition at line 67 of file LinearFunction.cpp.
|
protectedvirtual |
Update the value of b. Does nothing in LinearFunction. It is provided so that derived class may overload it.
Reimplemented in ocra::ReducedContactAvoidanceFunction, ocra::ReducedJointLimitFunction, ocra::FullContactAvoidanceFunction, ocra::FullJointLimitFunction, ocra::ContactAvoidanceFunction, ocra::LinearTask, ocra::FullDynamicEquationFunction, ocra::DynamicEquationFunction, ocra::TorqueLimitFunction, and ocra::SumOfLinearFunctions.
Definition at line 85 of file LinearFunction.cpp.
|
protectedvirtual |
Reimplemented in ocra::ReducedJointLimitFunction, ocra::FullContactAvoidanceFunction, ocra::ContactAvoidanceFunction, ocra::LinearTask, ocra::FullDynamicEquationFunction, ocra::DynamicEquationFunction, ocra::TorqueLimitFunction, and ocra::SumOfLinearFunctions.
Definition at line 80 of file LinearFunction.cpp.
|
protectedvirtual |
Overloads of the Function methods
Reimplemented in ocra::DiagonalLinearFunction, ocra::DoubleDiagonalLinearFunction, and ocra::IdentityFunction.
Definition at line 74 of file LinearFunction.cpp.
|
mutableprotected |
Definition at line 109 of file LinearFunction.h.
|
mutableprotected |
Definition at line 110 of file LinearFunction.h.
1.8.11