13template<
typename VariableType>
64 void splitBasedOnMonotonicity(std::set<VariableType>
const& consideredVariables, std::set<VariableType>& monotoneIncr, std::set<VariableType>& monotoneDecr,
65 std::set<VariableType>& notMontone)
const;
67 std::pair<std::set<VariableType>, std::set<VariableType>>
splitVariables(std::set<VariableType>
const& consideredVariables)
const;
116 std::shared_ptr<MonotonicityResult<VariableType>>
copy()
const;
119 std::map<VariableType, Monotonicity> monotonicityResult;
120 std::set<VariableType> doneVariables;
122 bool somewhereMonotonicity;
123 bool allMonotonicity;
std::map< VariableType, Monotonicity > getMonotonicityResult() const
Returns the results so far.
void splitBasedOnMonotonicity(std::set< VariableType > const &consideredVariables, std::set< VariableType > &monotoneIncr, std::set< VariableType > &monotoneDecr, std::set< VariableType > ¬Montone) const
Monotonicity
The results of monotonicity checking for a single Parameter Region.
@ Incr
the result is monotonically increasing
@ Unknown
the monotonicity result is unknown
@ Decr
the result is monotonically decreasing
@ Not
the result is not monotonic
@ Constant
the result is constant
void setDone(bool done=true)
Sets the done bool to the given truth value.
MonotonicityResult()
Constructs a new MonotonicityResult object.
void addMonotonicityResult(VariableType var, Monotonicity mon)
Adds a new variable with a given Monotonicity to the map.
void setAllMonotonicity(bool done=true)
Sets the allMonotonicity bool to the given truth value.
Monotonicity getMonotonicity(VariableType var) const
Returns the current monotonicity of a given parameter.
void setSomewhereMonotonicity(bool done=true)
Sets the somewhereMonotonicity bool to the given truth value.
void updateMonotonicityResult(VariableType var, Monotonicity mon, bool force=false)
Updates the Monotonicity of a variable based on its value so far and a new value.
std::pair< std::set< VariableType >, std::set< VariableType > > splitVariables(std::set< VariableType > const &consideredVariables) const
bool isAllMonotonicity() const
Returns if all Variables are monotone.
std::string toString() const
Constructs a string output of all variables and their corresponding Monotonicity.
std::shared_ptr< MonotonicityResult< VariableType > > copy() const
Constructs a new MonotonicityResult object that is a copy of the current one.
void setDoneVariables(std::set< VariableType > doneVariables)
bool existsMonotonicity()
Checks if there is any variable that is monotone.
bool isDoneForVar(VariableType) const
bool isMonotone(VariableType var) const
bool isDone() const
Checks if the result is complete.
void setDoneForVar(VariableType)