![]() |
aGrUM
0.16.0
|
Class implementing linear approximation policy (meaning possible value are split out in interval). More...
#include <linearApproximationPolicy.h>
Public Member Functions | |
Constructors / Destructors | |
LinearApproximationPolicy (GUM_SCALAR low=(GUM_SCALAR) 0.0, GUM_SCALAR high=(GUM_SCALAR) 1.0, GUM_SCALAR eps=(GUM_SCALAR) 0.1) | |
Default constructor. More... | |
LinearApproximationPolicy (const LinearApproximationPolicy< GUM_SCALAR > *md) | |
Copy constructor. More... | |
Accessors/Modifiers | |
GUM_SCALAR | fromExact (const GUM_SCALAR &value) const |
Convert value to his approximation. More... | |
void | combineAdd (const ApproximationPolicy< GUM_SCALAR > *ap) |
Combine using addition with the given gum::ApproximationPolicy. More... | |
void | combineSub (const ApproximationPolicy< GUM_SCALAR > *ap) |
Combine using substraction with the given gum::ApproximationPolicy. More... | |
void | combineMult (const ApproximationPolicy< GUM_SCALAR > *ap) |
Combine using multiplication with the given gum::ApproximationPolicy. More... | |
void | combineDiv (const ApproximationPolicy< GUM_SCALAR > *ap) |
Combine using division with the given gum::ApproximationPolicy. More... | |
void | combineMax (const ApproximationPolicy< GUM_SCALAR > *ap) |
Combine using max with the given gum::ApproximationPolicy. More... | |
void | combineMin (const ApproximationPolicy< GUM_SCALAR > *ap) |
Combine using min with the given gum::ApproximationPolicy. More... | |
GUM_SCALAR | safeFromExact (const GUM_SCALAR &value) |
Convert value to his approximation. More... | |
Idx | encode (const GUM_SCALAR &value) const |
Encode a given value into its approximation representation. More... | |
GUM_SCALAR | decode (Idx representation) const |
Convert approximation representation to value. More... | |
virtual void | setEpsilon (const GUM_SCALAR &e) |
Sets approximation factor. More... | |
virtual void | setLimits (const GUM_SCALAR &newLowLimit, const GUM_SCALAR &newHighLimit) |
Set bounds in a whole. More... | |
virtual void | setLowLimit (const GUM_SCALAR &newLowLimit) |
Sets lowest possible value. More... | |
const GUM_SCALAR & | lowLimit () const |
Gets lowest possible value. More... | |
virtual void | setHighLimit (const GUM_SCALAR &newHighLimit) |
Sets Highest possible value. More... | |
const GUM_SCALAR & | highLimit () const |
Gets Highest possible value. More... | |
Protected Attributes | |
GUM_SCALAR | _lowLimit |
Lowest value possible. More... | |
GUM_SCALAR | _highLimit |
Highest value possible. More... | |
GUM_SCALAR | _epsilon |
Approximation factor. More... | |
Idx | _nbInterval |
The number of interval. More... | |
Protected Member Functions | |
Idx | __encode (const GUM_SCALAR &value) const |
Concretely computes the approximate representation. More... | |
GUM_SCALAR | __decode (const GUM_SCALAR &representation) const |
Concretely computes the approximate value from representation. More... | |
void | _computeNbInterval () |
Get the number of interval. More... | |
Class implementing linear approximation policy (meaning possible value are split out in interval).
GUM_SCALAR | The type used for computations. |
Definition at line 55 of file linearApproximationPolicy.h.
gum::LinearApproximationPolicy< GUM_SCALAR >::LinearApproximationPolicy | ( | GUM_SCALAR | low = (GUM_SCALAR)0.0 , |
GUM_SCALAR | high = (GUM_SCALAR)1.0 , |
||
GUM_SCALAR | eps = (GUM_SCALAR)0.1 |
||
) |
Default constructor.
low | The lower limit. |
high | The higher limit. |
eps | The epsilon. |
OutOfBound | if out of bounds (low<high, eps>0) |
Definition at line 38 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_computeNbInterval(), and GUM_ERROR.
gum::LinearApproximationPolicy< GUM_SCALAR >::LinearApproximationPolicy | ( | const LinearApproximationPolicy< GUM_SCALAR > * | md | ) |
Copy constructor.
md | The gum::LinearApproximationPolicy to copy. |
Definition at line 49 of file linearApproximationPolicy_tpl.h.
|
protected |
Concretely computes the approximate value from representation.
representation | The approximate value to decode. |
Definition at line 373 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_epsilon, gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit, and gum::LinearApproximationPolicy< GUM_SCALAR >::_nbInterval.
Referenced by gum::LinearApproximationPolicy< GUM_SCALAR >::decode(), and gum::LinearApproximationPolicy< GUM_SCALAR >::fromExact().
|
protected |
Concretely computes the approximate representation.
value | The value to encode. |
Definition at line 362 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_epsilon, gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit, and gum::LinearApproximationPolicy< GUM_SCALAR >::_nbInterval.
Referenced by gum::LinearApproximationPolicy< GUM_SCALAR >::encode().
|
protected |
Get the number of interval.
Definition at line 385 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_epsilon, gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit, and gum::LinearApproximationPolicy< GUM_SCALAR >::_nbInterval.
Referenced by gum::LinearApproximationPolicy< GUM_SCALAR >::LinearApproximationPolicy(), gum::LinearApproximationPolicy< GUM_SCALAR >::setEpsilon(), gum::LinearApproximationPolicy< GUM_SCALAR >::setHighLimit(), gum::LinearApproximationPolicy< GUM_SCALAR >::setLimits(), and gum::LinearApproximationPolicy< GUM_SCALAR >::setLowLimit().
|
virtual |
Combine using addition with the given gum::ApproximationPolicy.
ap | The policy to combine with. |
Implements gum::ApproximationPolicy< GUM_SCALAR >.
Definition at line 64 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::highLimit(), and gum::LinearApproximationPolicy< GUM_SCALAR >::lowLimit().
|
virtual |
Combine using division with the given gum::ApproximationPolicy.
ap | The policy to combine with. |
Implements gum::ApproximationPolicy< GUM_SCALAR >.
Definition at line 154 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::highLimit(), and gum::LinearApproximationPolicy< GUM_SCALAR >::lowLimit().
|
virtual |
Combine using max with the given gum::ApproximationPolicy.
ap | The policy to combine with. |
Implements gum::ApproximationPolicy< GUM_SCALAR >.
Definition at line 184 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::highLimit(), and gum::LinearApproximationPolicy< GUM_SCALAR >::lowLimit().
|
virtual |
Combine using min with the given gum::ApproximationPolicy.
ap | The policy to combine with. |
Implements gum::ApproximationPolicy< GUM_SCALAR >.
Definition at line 217 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::highLimit(), and gum::LinearApproximationPolicy< GUM_SCALAR >::lowLimit().
|
virtual |
Combine using multiplication with the given gum::ApproximationPolicy.
ap | The policy to combine with. |
Implements gum::ApproximationPolicy< GUM_SCALAR >.
Definition at line 124 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::highLimit(), and gum::LinearApproximationPolicy< GUM_SCALAR >::lowLimit().
|
virtual |
Combine using substraction with the given gum::ApproximationPolicy.
ap | The policy to combine with. |
Implements gum::ApproximationPolicy< GUM_SCALAR >.
Definition at line 94 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::highLimit(), and gum::LinearApproximationPolicy< GUM_SCALAR >::lowLimit().
INLINE GUM_SCALAR gum::LinearApproximationPolicy< GUM_SCALAR >::decode | ( | Idx | representation | ) | const |
Convert approximation representation to value.
representation | The approximation representation to decode. |
Definition at line 290 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::__decode(), gum::LinearApproximationPolicy< GUM_SCALAR >::_nbInterval, and GUM_ERROR.
INLINE Idx gum::LinearApproximationPolicy< GUM_SCALAR >::encode | ( | const GUM_SCALAR & | value | ) | const |
Encode a given value into its approximation representation.
value | The to encode. |
OutOfLowerBound | Raised if value is out of bounds. |
OutOfUpperBound | Raised if value is out of bounds. |
Definition at line 267 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::__encode(), gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit, and GUM_ERROR.
Referenced by gum::LinearApproximationPolicy< GUM_SCALAR >::fromExact().
|
virtual |
Convert value to his approximation.
value | The converted value. |
Implements gum::ApproximationPolicy< GUM_SCALAR >.
Definition at line 57 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::__decode(), and gum::LinearApproximationPolicy< GUM_SCALAR >::encode().
Referenced by gum::LinearApproximationPolicy< GUM_SCALAR >::safeFromExact().
INLINE const GUM_SCALAR & gum::LinearApproximationPolicy< GUM_SCALAR >::highLimit | ( | ) | const |
Gets Highest possible value.
Definition at line 356 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit.
Referenced by gum::LinearApproximationPolicy< GUM_SCALAR >::combineAdd(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineDiv(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineMax(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineMin(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineMult(), and gum::LinearApproximationPolicy< GUM_SCALAR >::combineSub().
INLINE const GUM_SCALAR & gum::LinearApproximationPolicy< GUM_SCALAR >::lowLimit | ( | ) | const |
Gets lowest possible value.
Definition at line 336 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit.
Referenced by gum::LinearApproximationPolicy< GUM_SCALAR >::combineAdd(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineDiv(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineMax(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineMin(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineMult(), and gum::LinearApproximationPolicy< GUM_SCALAR >::combineSub().
INLINE GUM_SCALAR gum::LinearApproximationPolicy< GUM_SCALAR >::safeFromExact | ( | const GUM_SCALAR & | value | ) |
Convert value to his approximation.
This method is slower than fromExact since it verifies the bounds.
OutOfLowerBound | Raised if value is out of bounds. |
OutOfUpperBound | Raised if value is out of bounds. |
Definition at line 252 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::fromExact(), and GUM_ERROR.
|
virtual |
Sets approximation factor.
e | The new epsilon value. |
Definition at line 302 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_computeNbInterval(), and gum::LinearApproximationPolicy< GUM_SCALAR >::_epsilon.
|
virtual |
Sets Highest possible value.
newHighLimit | New higher bound. |
OutOfLowerBound | Raised if out of bound. |
Definition at line 342 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_computeNbInterval(), gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit, and GUM_ERROR.
|
virtual |
Set bounds in a whole.
newLowLimit | New lower bound. |
newHighLimit | New higher bound. |
OutOfBounds | Raised if new bounds are not legit. |
Definition at line 309 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_computeNbInterval(), gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit, and GUM_ERROR.
|
virtual |
Sets lowest possible value.
newLowLimit | New lower bound. |
OutOfUpperBound | Raised if out of bound. |
Definition at line 322 of file linearApproximationPolicy_tpl.h.
References gum::LinearApproximationPolicy< GUM_SCALAR >::_computeNbInterval(), gum::LinearApproximationPolicy< GUM_SCALAR >::_highLimit, gum::LinearApproximationPolicy< GUM_SCALAR >::_lowLimit, and GUM_ERROR.
|
protected |
Approximation factor.
Definition at line 211 of file linearApproximationPolicy.h.
Referenced by gum::LinearApproximationPolicy< GUM_SCALAR >::__decode(), gum::LinearApproximationPolicy< GUM_SCALAR >::__encode(), gum::LinearApproximationPolicy< GUM_SCALAR >::_computeNbInterval(), and gum::LinearApproximationPolicy< GUM_SCALAR >::setEpsilon().
|
protected |
Highest value possible.
Definition at line 208 of file linearApproximationPolicy.h.
Referenced by gum::LinearApproximationPolicy< GUM_SCALAR >::__decode(), gum::LinearApproximationPolicy< GUM_SCALAR >::__encode(), gum::LinearApproximationPolicy< GUM_SCALAR >::_computeNbInterval(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineAdd(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineDiv(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineMax(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineMin(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineMult(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineSub(), gum::LinearApproximationPolicy< GUM_SCALAR >::encode(), gum::LinearApproximationPolicy< GUM_SCALAR >::highLimit(), gum::LinearApproximationPolicy< GUM_SCALAR >::safeFromExact(), gum::LinearApproximationPolicy< GUM_SCALAR >::setHighLimit(), gum::LinearApproximationPolicy< GUM_SCALAR >::setLimits(), and gum::LinearApproximationPolicy< GUM_SCALAR >::setLowLimit().
|
protected |
Lowest value possible.
Definition at line 205 of file linearApproximationPolicy.h.
Referenced by gum::LinearApproximationPolicy< GUM_SCALAR >::__decode(), gum::LinearApproximationPolicy< GUM_SCALAR >::__encode(), gum::LinearApproximationPolicy< GUM_SCALAR >::_computeNbInterval(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineAdd(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineDiv(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineMax(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineMin(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineMult(), gum::LinearApproximationPolicy< GUM_SCALAR >::combineSub(), gum::LinearApproximationPolicy< GUM_SCALAR >::encode(), gum::LinearApproximationPolicy< GUM_SCALAR >::lowLimit(), gum::LinearApproximationPolicy< GUM_SCALAR >::safeFromExact(), gum::LinearApproximationPolicy< GUM_SCALAR >::setHighLimit(), gum::LinearApproximationPolicy< GUM_SCALAR >::setLimits(), and gum::LinearApproximationPolicy< GUM_SCALAR >::setLowLimit().
|
protected |
The number of interval.
Definition at line 237 of file linearApproximationPolicy.h.
Referenced by gum::LinearApproximationPolicy< GUM_SCALAR >::__decode(), gum::LinearApproximationPolicy< GUM_SCALAR >::__encode(), gum::LinearApproximationPolicy< GUM_SCALAR >::_computeNbInterval(), and gum::LinearApproximationPolicy< GUM_SCALAR >::decode().