FMT 1.2.0
Forest management tools for forest planning
Loading...
Searching...
No Matches
Public Member Functions | Friends | List of all members
Core::FMTComplexYieldHandler Class Referencefinal

Yield handler for complex yields computed from other yields using operators, as seen in the yield section. More...

#include <FMTComplexYieldHandler.h>

Inheritance diagram for Core::FMTComplexYieldHandler:
[legend]
Collaboration diagram for Core::FMTComplexYieldHandler:
[legend]

Public Member Functions

void setTabou (const size_t &index)
 Add an override index to the tabou set.
 
void setTabou (const FMTComplexYieldHandler &rhs)
 Copy the tabou set from another complex yield handler.
 
std::vector< size_t > getTabous () const override
 Return the tabou indexes of the handler.
 
virtual void setOverrideIndex (const size_t &newindex)
 Set the override index of the handler.
 
virtual size_t getOverrideIndex () const
 Return the override index of the handler.
 
virtual int getLastBase () const
 Return the last base age of the handler.
 
virtual double get (const std::string &yld, const FMTYieldRequest &request) const
 Get the value of a yield for a request.
 
bool compareSources (const std::string &yield, const FMTComplexYieldHandler &overridedyield) const
 Compare the sources of a yield with those of an overriding handler.
 
virtual operator std::string () const
 Return the string representation of the complex yield handler.
 
 ~FMTComplexYieldHandler ()
 Destructor for FMTComplexYieldHandler.
 
 FMTComplexYieldHandler ()
 Default constructor for FMTComplexYieldHandler.
 
 FMTComplexYieldHandler (const FMTComplexYieldHandler &rhs)=default
 Copy constructor for FMTComplexYieldHandler.
 
FMTComplexYieldHandleroperator= (const FMTComplexYieldHandler &rhs)=default
 Copy assignment operator for FMTComplexYieldHandler.
 
 FMTComplexYieldHandler (const FMTMask &p_mask)
 Construct a complex yield handler from a mask.
 
const std::map< std::string, FMTData, cmpYieldString > & getDataElements () const
 Return the data elements of the handler.
 
virtual std::vector< std::string > indexes (const std::vector< std::string > &names) const
 Return the yield names that are indexes among the given names.
 
virtual double getPeak (const FMTYieldRequest &request, const std::string &yld, const int &targetage) const
 Return the peak value of a yield for a request.
 
std::unique_ptr< FMTYieldHandlercomplexYldToAgeYld (const FMTYieldRequest &request, const FMTSpec &lspec) const
 Convert the complex yield to an age yield handler for a request and specification.
 
virtual bool pushData (const std::string &yld, const double &value)
 Push a value for a yield.
 
virtual bool pushData (const std::string &yld, const FMTData &data)
 Push data for a yield.
 
virtual std::unique_ptr< FMTYieldHandlerclone () const
 Clone the complex yield handler.
 
virtual bool operator== (const FMTComplexYieldHandler &rhs) const
 Equality comparison operator of FMTComplexYieldHandler.
 
virtual bool empty () const
 Return true if the handler is empty.
 
virtual size_t size () const
 Return the number of yields in the handler.
 
virtual FMTyldtype getType () const
 Return the type of the yield handler.
 
virtual FMTDataoperator[] (const std::string &yldname)
 Access the data of a yield.
 
virtual const FMTDataat (const std::string &yldname) const
 Access the data of a yield.
 
virtual bool containsYield (const std::string &yldname) const
 Return true if the handler contains a given yield.
 
virtual std::vector< std::string > getYieldNames () const
 Return the yield names of the handler.
 
virtual void clearCache ()
 Clear the cache of the handler.
 
virtual int getAge (const FMTYieldRequest &request, const FMTSpec &spec) const
 Return the age of a development from a request and a specification.
 
virtual double getYieldLinearValue (const std::string &yldname, const FMTYieldRequest &request, bool allowoutofrange=true) const
 Return the linearly interpolated value of a yield for a request.
 
- Public Member Functions inherited from Core::FMTYieldHandler
virtual size_t getOverrideIndex () const
 Return the override index of the handler.
 
virtual std::vector< size_t > getTabous () const
 Return the tabou indexes of the handler.
 
virtual void setOverrideIndex (const size_t &newindex)
 Set the override index of the handler.
 
virtual ~FMTYieldHandler ()=default
 Default virtual destructor for FMTYieldHandler.
 
 FMTYieldHandler ()=default
 Default constructor for FMTYieldHandler.
 
 FMTYieldHandler (const FMTYieldHandler &rhs)=default
 Copy constructor for FMTYieldHandler.
 
FMTYieldHandleroperator= (const FMTYieldHandler &rhs)=default
 Copy assignment operator for FMTYieldHandler.
 
 FMTYieldHandler (const FMTMask &lmask)
 Construct a yield handler from a mask.
 
double getLinearValue (const std::vector< double > &dls, const int &agetarget, bool allowoutofrange) const
 Return the linearly interpolated value at a target age.
 
virtual int getLastBase () const
 Return the last base age of the handler.
 
const std::vector< int > & getBases () const
 Return the base ages of the handler.
 
FMTMask getMask () const
 Return the mask of the handler.
 
void setMask (const FMTMask &p_mask)
 Set the mask of the handler.
 
bool pushBase (const int &base)
 Push a base age to the handler.
 
void setBase (const std::vector< int > &allvalues)
 Set the base ages of the handler.
 
bool inLookAt (const std::string &yld) const
 Return true if a yield is in the look at set.
 
virtual double getLastValue (const std::string yld) const
 Return the last value of a yield.
 
virtual double get (const std::string &yld, const FMTYieldRequest &request) const
 Get the value of a yield for a request.
 
virtual bool pushData (const std::string &yld, const double &value)
 Push a value for a yield.
 
virtual bool pushData (const std::string &yld, const FMTData &data)
 Push data for a yield.
 
virtual std::vector< std::string > indexes (const std::vector< std::string > &names) const
 Return the yield names that are indexes among the given names.
 
virtual operator std::string () const
 Return the string representation of the yield handler.
 
virtual std::vector< std::string > compare (const std::vector< std::string > &keys) const
 Return the keys that match the handler.
 
virtual std::unique_ptr< FMTYieldHandlerclone () const
 Clone the yield handler.
 
virtual bool operator== (const FMTYieldHandler &rhs) const
 Equality comparison operator of FMTYieldHandler.
 
virtual bool empty () const
 Return true if the handler is empty.
 
virtual size_t size () const
 Return the number of yields in the handler.
 
virtual FMTyldtype getType () const
 Return the type of the yield handler.
 
virtual FMTDataoperator[] (const std::string &yldname)
 Access the data of a yield.
 
virtual const FMTDataat (const std::string &yldname) const
 Access the data of a yield.
 
virtual bool containsYield (const std::string &yldname) const
 Return true if the handler contains a given yield.
 
virtual bool isNullYield (const std::string &yldname) const
 Return true if a yield is a null yield.
 
virtual std::vector< std::string > getYieldNames () const
 Return the yield names of the handler.
 
virtual void clearCache ()
 Clear the cache of the handler.
 
virtual std::map< std::string, std::vector< double > > getAllYieldsData (const int &maxbase) const
 Return all the yield data up to a maximum base age.
 
virtual std::unique_ptr< FMTYieldHandlerpreSolve (const FMTMaskFilter &filter, const std::vector< FMTTheme > &newthemes) const
 Return a presolved copy of the handler.
 
virtual std::unique_ptr< FMTYieldHandlerpostSolve (const FMTMaskFilter &filter, const std::vector< FMTTheme > &basethemes) const
 Return a postsolved copy of the handler.
 
virtual std::unique_ptr< FMTYieldHandlergetFromFactor (const double &factor, std::vector< std::string >yieldnames=std::vector< std::string >()) const
 Multiply the handler by a factor and return a new handler.
 
virtual int getEndPoint (const std::string &yld, const int &lowerstep, const double &bound, const double &value) const
 Return the age at which a yield reaches a bound value.
 
virtual double getPeak (const FMTYieldRequest &request, const std::string &yld, const int &targetage) const
 Return the peak value of a yield for a request.
 
virtual int getAge (const FMTYieldRequest &request, const FMTSpec &spec) const
 Return the age of a development from a request and a specification.
 
virtual double getYieldLinearValue (const std::string &yldname, const FMTYieldRequest &request, bool allowoutofrange=true) const
 Return the linearly interpolated value of a yield for a request.
 
- Public Member Functions inherited from Core::FMTObject
 FMTObject ()
 Default constructor for FMTObject.
 
virtual ~FMTObject ()
 Default virtual destructor for FMTObject.
 
 FMTObject (const std::unique_ptr< Exception::FMTExceptionHandler > exhandler)
 Construct a FMTObject passing in the exception handler of another FMTObject.
 
 FMTObject (const FMTObject &rhs)
 Copy constructor for FMTObject.
 
FMTObjectoperator= (const FMTObject &rhs)
 Copy assignment operator for FMTObject.
 
virtual void passInLogger (const std::unique_ptr< Logging::FMTLogger > &logger)
 Pass in the logger of another FMTObject.
 
void passInExceptionHandler (const std::unique_ptr< Exception::FMTExceptionHandler > &exhandler)
 Pass in the exception handler of another FMTObject.
 
void redirectLogToFile (const std::string &location)
 Redirect the log to a specific file, appending to it.
 
virtual void setDefaultLogger ()
 Create and set a default logger to the FMTObject.
 
virtual void setQuietLogger ()
 Create and set a quiet logger to the FMTObject.
 
virtual void setTaskLogger ()
 Create and set a task logger to the FMTObject.
 
virtual void setDebugLogger ()
 Create and set a debug logger to the FMTObject.
 
void setDefaultExceptionHandler ()
 Create and set a default exception handler to the FMTObject.
 
void setQuietExceptionHandler ()
 Create and set a quiet exception handler to the FMTObject.
 
void setDebugExceptionHandler ()
 Create and set a debug exception handler to the FMTObject.
 
void setFreeExceptionHandler ()
 Create and set a free exception handler to the FMTObject.
 
void disableNestedExceptions ()
 Disable the nested exception throw of the exception handler.
 
void enableNestedExceptions ()
 Enable the nested exception throw of the exception handler.
 
void setErrorsToWarnings (const std::vector< Exception::FMTexc > &errors)
 Set a list of errors to be cast to warnings on the exception handler.
 
void setMaxWarningsBeforeSilenced (const size_t &maxwarningcount)
 Set the number of warnings raised before being silenced.
 
template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 

Friends

class boost::serialization::access
 

Additional Inherited Members

- Static Public Member Functions inherited from Core::FMTObject
static Logging::FMTLoggergetLogger ()
 get a pointer to the actual logger.
 
static Exception::FMTExceptionHandlergetExceptionHandler ()
 get a pointer to the actual exception handler.
 
static std::string getRuntimeLocation ()
 Return the location of the FMT shared library.
 
static unsigned long long getAvailableMemory ()
 Return the available memory in bytes.
 
static void setTerminateStack ()
 will write the stack in the log when terminate called and raise a function failed.
 
static void setAbortStack ()
 will write the stack in the log when abort called with SIGABRT and raise a function failed.
 
- Protected Member Functions inherited from Core::FMTYieldHandler
double _getChangesFrom (const int &targetage, const int &peakstep) const
 Return the change of value from a target age over a peak step.
 
int _getMaxBase (const FMTYieldRequest &request) const
 Return the maximum base age for a request.
 
- Protected Member Functions inherited from Core::FMTObject
template<class Archive >
void forceSave (Archive &ar, const unsigned int version) const
 Force the serialization to save useful information, which the default FMTObject serialization does not.
 
template<class Archive >
void forceLoad (Archive &ar, const unsigned int version)
 Force the serialization to load useful information, which the default FMTObject serialization does not.
 
void checkSignals () const
 Check if the user has sent a ctrl-c signal using boost::python to FMT.
 
void setCplHandler ()
 Pass the FMT exception handler to the GDAL exception handler (GDAL only).
 
- Static Protected Member Functions inherited from Core::FMTYieldHandler
static bool _basePushData (std::map< std::string, FMTData, cmpYieldString > &elements, const std::string &yld, const double &value)
 Push a value for a yield into the given elements.
 
static bool _basePushData (std::map< std::string, FMTData, cmpYieldString > &elements, const std::string &yld, const FMTData &data)
 Push data for a yield into the given elements.
 
- Static Protected Member Functions inherited from Core::FMTObject
static std::chrono::time_point< std::chrono::high_resolution_clock > getClock ()
 Return a clock of the current time.
 
template<class chrono >
static double getDuration (const std::chrono::time_point< std::chrono::high_resolution_clock > &startclock)
 Return the time elapsed since a start clock as a double.
 
static std::string getDurationInSeconds (const std::chrono::time_point< std::chrono::high_resolution_clock > &startclock)
 Return the time elapsed since a start clock in seconds as a string.
 
static void _logStack ()
 Log the stack trace...
 
static void _terminate ()
 Raise an error with the boost stacktrace.
 
static void _abort (int p_signal)
 Raise an error with the boost stacktrace on abort.
 
- Protected Attributes inherited from Core::FMTYieldHandler
FMTMask m_mask
 
std::vector< int > m_bases
 
std::unordered_set< std::string > m_lookat
 
- Static Protected Attributes inherited from Core::FMTObject
static std::unique_ptr< Exception::FMTExceptionHandler_exhandler
 A shared pointer to the exception handler.
 
static std::unique_ptr< Logging::FMTLogger_logger
 A shared pointer to the logger.
 

Detailed Description

Yield handler for complex yields computed from other yields using operators, as seen in the yield section.

Constructor & Destructor Documentation

◆ ~FMTComplexYieldHandler()

Core::FMTComplexYieldHandler::~FMTComplexYieldHandler ( )

Destructor for FMTComplexYieldHandler.

◆ FMTComplexYieldHandler() [1/3]

Core::FMTComplexYieldHandler::FMTComplexYieldHandler ( )

Default constructor for FMTComplexYieldHandler.

◆ FMTComplexYieldHandler() [2/3]

Core::FMTComplexYieldHandler::FMTComplexYieldHandler ( const FMTComplexYieldHandler rhs)
default

Copy constructor for FMTComplexYieldHandler.

Parameters
[in]rhsthe FMTComplexYieldHandler to copy.

◆ FMTComplexYieldHandler() [3/3]

Core::FMTComplexYieldHandler::FMTComplexYieldHandler ( const FMTMask p_mask)

Construct a complex yield handler from a mask.

Parameters
[in]p_maskthe mask.

Member Function Documentation

◆ at()

virtual const FMTData & Core::FMTComplexYieldHandler::at ( const std::string &  yldname) const
virtual

Access the data of a yield.

Parameters
[in]yldnamethe yield name.
Returns
a const reference to the data of the yield.

Reimplemented from Core::FMTYieldHandler.

◆ clearCache()

virtual void Core::FMTComplexYieldHandler::clearCache ( )
virtual

Clear the cache of the handler.

Reimplemented from Core::FMTYieldHandler.

◆ clone()

virtual std::unique_ptr< FMTYieldHandler > Core::FMTComplexYieldHandler::clone ( ) const
virtual

Clone the complex yield handler.

Returns
a unique pointer to the cloned yield handler.

Reimplemented from Core::FMTYieldHandler.

◆ compareSources()

bool Core::FMTComplexYieldHandler::compareSources ( const std::string &  yield,
const FMTComplexYieldHandler overridedyield 
) const

Compare the sources of a yield with those of an overriding handler.

Parameters
[in]yieldthe yield name.
[in]overridedyieldthe overriding handler.
Returns
true if the sources are equal else false.

◆ complexYldToAgeYld()

std::unique_ptr< FMTYieldHandler > Core::FMTComplexYieldHandler::complexYldToAgeYld ( const FMTYieldRequest request,
const FMTSpec &  lspec 
) const

Convert the complex yield to an age yield handler for a request and specification.

Parameters
[in]requestthe yield request.
[in]lspecthe specification.
Returns
the age yield handler.

◆ containsYield()

virtual bool Core::FMTComplexYieldHandler::containsYield ( const std::string &  yldname) const
virtual

Return true if the handler contains a given yield.

Parameters
[in]yldnamethe yield name.
Returns
true if the handler contains the yield else false.

Reimplemented from Core::FMTYieldHandler.

◆ empty()

virtual bool Core::FMTComplexYieldHandler::empty ( ) const
virtual

Return true if the handler is empty.

Returns
true if the handler is empty else false.

Reimplemented from Core::FMTYieldHandler.

◆ get()

virtual double Core::FMTComplexYieldHandler::get ( const std::string &  yld,
const FMTYieldRequest request 
) const
virtual

Get the value of a yield for a request.

Parameters
[in]yldthe yield name.
[in]requestthe yield request.
Returns
the yield value.

Reimplemented from Core::FMTYieldHandler.

◆ getAge()

virtual int Core::FMTComplexYieldHandler::getAge ( const FMTYieldRequest request,
const FMTSpec &  spec 
) const
virtual

Return the age of a development from a request and a specification.

Parameters
[in]requestthe yield request.
[in]specthe specification.
Returns
the age.

Reimplemented from Core::FMTYieldHandler.

◆ getDataElements()

const std::map< std::string, FMTData, cmpYieldString > & Core::FMTComplexYieldHandler::getDataElements ( ) const

Return the data elements of the handler.

Returns
a const reference to the data elements.

◆ getLastBase()

virtual int Core::FMTComplexYieldHandler::getLastBase ( ) const
virtual

Return the last base age of the handler.

Returns
the last base age.

Reimplemented from Core::FMTYieldHandler.

◆ getOverrideIndex()

virtual size_t Core::FMTComplexYieldHandler::getOverrideIndex ( ) const
virtual

Return the override index of the handler.

Returns
the override index.

Reimplemented from Core::FMTYieldHandler.

◆ getPeak()

virtual double Core::FMTComplexYieldHandler::getPeak ( const FMTYieldRequest request,
const std::string &  yld,
const int &  targetage 
) const
virtual

Return the peak value of a yield for a request.

Parameters
[in]requestthe yield request.
[in]yldthe yield name.
[in]targetagethe target age.
Returns
the peak value.

Reimplemented from Core::FMTYieldHandler.

◆ getTabous()

std::vector< size_t > Core::FMTComplexYieldHandler::getTabous ( ) const
overridevirtual

Return the tabou indexes of the handler.

Returns
the tabou indexes.

Reimplemented from Core::FMTYieldHandler.

◆ getType()

virtual FMTyldtype Core::FMTComplexYieldHandler::getType ( ) const
virtual

Return the type of the yield handler.

Returns
the yield type.

Reimplemented from Core::FMTYieldHandler.

◆ getYieldLinearValue()

virtual double Core::FMTComplexYieldHandler::getYieldLinearValue ( const std::string &  yldname,
const FMTYieldRequest request,
bool  allowoutofrange = true 
) const
virtual

Return the linearly interpolated value of a yield for a request.

Parameters
[in]yldnamethe yield name.
[in]requestthe yield request.
[in]allowoutofrangeif true allows out of range values.
Returns
the linear yield value.

Reimplemented from Core::FMTYieldHandler.

◆ getYieldNames()

virtual std::vector< std::string > Core::FMTComplexYieldHandler::getYieldNames ( ) const
virtual

Return the yield names of the handler.

Returns
the yield names.

Reimplemented from Core::FMTYieldHandler.

◆ indexes()

virtual std::vector< std::string > Core::FMTComplexYieldHandler::indexes ( const std::vector< std::string > &  names) const
virtual

Return the yield names that are indexes among the given names.

Parameters
[in]namesthe names.
Returns
the index names.

Reimplemented from Core::FMTYieldHandler.

◆ operator std::string()

virtual Core::FMTComplexYieldHandler::operator std::string ( ) const
virtual

Return the string representation of the complex yield handler.

Returns
the string representation.

Reimplemented from Core::FMTYieldHandler.

◆ operator=()

FMTComplexYieldHandler & Core::FMTComplexYieldHandler::operator= ( const FMTComplexYieldHandler rhs)
default

Copy assignment operator for FMTComplexYieldHandler.

Parameters
[in]rhsthe FMTComplexYieldHandler to copy.
Returns
a reference to this FMTComplexYieldHandler.

◆ operator==()

virtual bool Core::FMTComplexYieldHandler::operator== ( const FMTComplexYieldHandler rhs) const
virtual

Equality comparison operator of FMTComplexYieldHandler.

Parameters
[in]rhsthe handler to compare with.
Returns
true if both handlers are equal else false.

◆ operator[]()

virtual FMTData & Core::FMTComplexYieldHandler::operator[] ( const std::string &  yldname)
virtual

Access the data of a yield.

Parameters
[in]yldnamethe yield name.
Returns
a reference to the data of the yield.

Reimplemented from Core::FMTYieldHandler.

◆ pushData() [1/2]

virtual bool Core::FMTComplexYieldHandler::pushData ( const std::string &  yld,
const double &  value 
)
virtual

Push a value for a yield.

Parameters
[in]yldthe yield name.
[in]valuethe value.
Returns
true if the value is pushed else false.

Reimplemented from Core::FMTYieldHandler.

◆ pushData() [2/2]

virtual bool Core::FMTComplexYieldHandler::pushData ( const std::string &  yld,
const FMTData data 
)
virtual

Push data for a yield.

Parameters
[in]yldthe yield name.
[in]datathe data.
Returns
true if the data is pushed else false.

Reimplemented from Core::FMTYieldHandler.

◆ setOverrideIndex()

virtual void Core::FMTComplexYieldHandler::setOverrideIndex ( const size_t &  newindex)
virtual

Set the override index of the handler.

Parameters
[in]newindexthe override index to set.

Reimplemented from Core::FMTYieldHandler.

◆ setTabou() [1/2]

void Core::FMTComplexYieldHandler::setTabou ( const FMTComplexYieldHandler rhs)

Copy the tabou set from another complex yield handler.

Parameters
[in]rhsthe complex yield handler.

◆ setTabou() [2/2]

void Core::FMTComplexYieldHandler::setTabou ( const size_t &  index)

Add an override index to the tabou set.

Parameters
[in]indexthe index to add.

◆ size()

virtual size_t Core::FMTComplexYieldHandler::size ( ) const
virtual

Return the number of yields in the handler.

Returns
the number of yields.

Reimplemented from Core::FMTYieldHandler.

Friends And Related Function Documentation

◆ boost::serialization::access

friend class boost::serialization::access
friend

The documentation for this class was generated from the following file: