![]() |
ICF 3.0.5.47
Technical documentation of ICF Libraries
|
Multidimensional polynomial function. More...
#include <TMultidimensionalPolynomial.h>
Public Types | |
typedef imath::TIMathFunction< TVector< Dimensions >, Element > | BaseClass |
typedef istd::TArray< Element, Dimensions > | Coefficients |
typedef Coefficients::SizesType | CoeffGridSize |
![]() | |
typedef TVector< Dimensions > | ArgumentType |
typedef double | ResultType |
![]() | |
enum | ChangeFlags { CF_ICF_INTERNAL = 0 , CF_ALL_DATA , CF_ANY , CF_DESTROYING , CF_DELEGATED , CF_NO_UNDO } |
Data model change notification flags. More... | |
enum | SupportedOperations { SO_NONE = 0 , SO_OBSERVE = 1 << 0 , SO_COPY = 1 << 1 , SO_CLONE = 1 << 2 , SO_COMPARE = 1 << 3 , SO_RESET = 1 << 4 , SO_CHANGE_LOCK = 1 << 5 } |
Flags for supported operations. More... | |
enum | CompatibilityMode { CM_STRICT , CM_WITHOUT_REFS , CM_WITH_REFS , CM_CONVERT } |
Control how relationship betweeen objects are interpreted. More... | |
Public Member Functions | |
TMultidimensionalPolynomial () | |
TMultidimensionalPolynomial (const Coefficients &coefficients) | |
const Coefficients & | GetCoefficients () const |
void | SetCoefficients (const Coefficients &coefficients) |
bool | ApproximateCoefficientsFromFulcrums (const CoeffGridSize &coeffGridSize, const ArgumentType *arguments, const ResultType *destValues, int count) |
virtual bool | GetValueAt (const ArgumentType &argument, ResultType &result) const |
virtual ResultType | GetValueAt (const ArgumentType &argument) const |
virtual bool | Serialize (iser::IArchive &archive) |
Load or store state of this object as a archive stream. | |
TMultidimensionalPolynomial< 1, double >::ResultType | GetValueAt (const ArgumentType &argument) const |
TMultidimensionalPolynomial< 2, double >::ResultType | GetValueAt (const ArgumentType &argument) const |
TMultidimensionalPolynomial< 3, double >::ResultType | GetValueAt (const ArgumentType &argument) const |
![]() | |
virtual bool | GetValueAt (const TVector< Dimensions > &argument, double &result) const=0 |
Get function value for specified argument value. | |
virtual double | GetValueAt (const TVector< Dimensions > &argument) const=0 |
Get function value for specified argument value. | |
![]() | |
virtual quint32 | GetMinimalVersion (int versionId) const |
Get minimal needed version to correct storing of this data. | |
![]() | |
virtual int | GetSupportedOperations () const |
Get set of flags for supported operations. | |
virtual bool | CopyFrom (const IChangeable &object, CompatibilityMode mode=CM_WITHOUT_REFS) |
Copy this object from another one. | |
virtual bool | IsEqual (const IChangeable &object) const |
Compare this object with another object. | |
virtual std::unique_ptr< IChangeable > | CloneMe (CompatibilityMode mode=CM_WITHOUT_REFS) const |
Make a copy of this object. | |
virtual bool | ResetData (CompatibilityMode mode=CM_WITHOUT_REFS) |
Reset data to its default state. | |
virtual QMutex * | GetChangesLock () const |
Get mutex beeing locked during changes, if available. | |
virtual void | BeginChanges (const ChangeSet &changeSet) |
Starts the change transaction. | |
virtual void | EndChanges (const ChangeSet &changeSet) |
Ends the change transaction. | |
virtual void | BeginChangeGroup (const ChangeSet &changeSet) |
Starts group of changes. | |
virtual void | EndChangeGroup (const ChangeSet &changeSet) |
Ends group of changes. | |
Static Public Member Functions | |
static double | GetBaseFunctionValue (const ArgumentType &argument, const istd::TIndex< Dimensions > &coeffIndex) |
Get value of base function for single coefficient. | |
![]() | |
static const ChangeSet & | GetNoChanges () |
Get empty set of changes. | |
static const ChangeSet & | GetAnyChange () |
Get anonymous change set. | |
static const ChangeSet & | GetAllChanges () |
Get anonymous change set. | |
static const ChangeSet & | GetDelegatedChanges () |
Get delegated change set. | |
Protected Member Functions | |
void | CumulateRecursiveValueAt (const ArgumentType &argument, int dimension, typename istd::TIndex< Dimensions > &index, ResultType &result) const |
Cumulate interpolated value or derivative at specified recursion level. | |
![]() | |
virtual void | OnBeginChanges () |
Callback function for begin change event. | |
virtual void | OnEndChanges (const ChangeSet &changeSet) |
Callback function for end change event. | |
Multidimensional polynomial function.
Dimensions | number of dimensions. |
Element | type of result value. |
Definition at line 28 of file TMultidimensionalPolynomial.h.
imath::TIMathFunction<TVector<Dimensions>, Element> imath::TMultidimensionalPolynomial< Dimensions, Element >::BaseClass |
Definition at line 33 of file TMultidimensionalPolynomial.h.
Coefficients::SizesType imath::TMultidimensionalPolynomial< Dimensions, Element >::CoeffGridSize |
Definition at line 35 of file TMultidimensionalPolynomial.h.
istd::TArray<Element, Dimensions> imath::TMultidimensionalPolynomial< Dimensions, Element >::Coefficients |
Definition at line 34 of file TMultidimensionalPolynomial.h.
imath::TMultidimensionalPolynomial< Dimensions, Element >::TMultidimensionalPolynomial | ( | ) |
Definition at line 86 of file TMultidimensionalPolynomial.h.
|
explicit |
Definition at line 92 of file TMultidimensionalPolynomial.h.
bool imath::TMultidimensionalPolynomial< Dimensions, Element >::ApproximateCoefficientsFromFulcrums | ( | const CoeffGridSize & | coeffGridSize, |
const ArgumentType * | arguments, | ||
const ResultType * | destValues, | ||
int | count ) |
Definition at line 113 of file TMultidimensionalPolynomial.h.
References istd::TArray< Element, Dimensions >::GetAt(), istd::TIndex< Dimensions >::GetProductVolume(), istd::TArray< Element, Dimensions >::GetSizes(), imath::CVarMatrix::GetSolvedLSP(), istd::TIndex< Dimensions >::Increase(), istd::TIndex< Dimensions >::IsSizeEmpty(), istd::TArray< Element, Dimensions >::SetAt(), and istd::TArray< Element, Dimensions >::SetSizes().
|
protected |
Cumulate interpolated value or derivative at specified recursion level.
argument | position, where interpolation should be calculated. |
dimension | working dimension and recursion level. |
index | multidimensional index pointing at coefficient. For the sake of performance it is internal modified. |
result | output value. |
Definition at line 360 of file TMultidimensionalPolynomial.h.
|
static |
Get value of base function for single coefficient.
Definition at line 345 of file TMultidimensionalPolynomial.h.
References istd::TIndex< Dimensions >::GetAt().
const TMultidimensionalPolynomial< Dimensions, Element >::Coefficients & imath::TMultidimensionalPolynomial< Dimensions, Element >::GetCoefficients | ( | ) | const |
Definition at line 99 of file TMultidimensionalPolynomial.h.
|
virtual |
Definition at line 177 of file TMultidimensionalPolynomial.h.
|
inline |
Definition at line 189 of file TMultidimensionalPolynomial.h.
|
inline |
Definition at line 207 of file TMultidimensionalPolynomial.h.
|
inline |
Definition at line 245 of file TMultidimensionalPolynomial.h.
|
virtual |
Definition at line 168 of file TMultidimensionalPolynomial.h.
References imath::TMultidimensionalPolynomial< Dimensions, Element >::GetValueAt().
Referenced by imath::TMultidimensionalPolynomial< Dimensions, Element >::GetValueAt().
|
virtual |
Load or store state of this object as a archive stream.
Type of operation is depending on archive type.
Implements iser::ISerializable.
Definition at line 298 of file TMultidimensionalPolynomial.h.
References istd::TIndex< Dimensions >::Begin(), iser::IArchive::BeginTag(), iser::IArchive::EndTag(), iser::IArchive::IsChanging(), iser::IArchive::Process(), and iser::CArchiveTag::TT_GROUP.
void imath::TMultidimensionalPolynomial< Dimensions, Element >::SetCoefficients | ( | const Coefficients & | coefficients | ) |
Definition at line 106 of file TMultidimensionalPolynomial.h.
© Witold Gantzke and Kirill Lepskiy