|
TVM
0.9.4
|
#include <tvm/scheme/internal/ProblemComputationData.h>


Classes | |
| class | EventQueue |
Public Member Functions | |
| virtual | ~ProblemComputationData ()=default |
| int | solverId () const |
| bool | addVariable (VariablePtr var) |
| void | addVariable (const VariableVector &vars) |
| bool | removeVariable (Variable *v) |
| void | removeVariable (const VariableVector &vars) |
| const VariableVector & | variables () const |
| void | setVariablesToSolution () |
| void | addEvent (const ProblemDefinitionEvent &e) |
| ProblemDefinitionEvent | popEvent () |
| bool | hasEvents () const |
| const EventQueue::container_type & | events () const |
| void | clearEvents () |
| void | clearVariables () |
Protected Member Functions | |
| ProblemComputationData (int solverId) | |
| ProblemComputationData ()=delete | |
| virtual void | setVariablesToSolution_ (tvm::internal::VariableCountingVector &x)=0 |
Protected Attributes | |
| tvm::internal::VariableCountingVector | variables_ |
| EventQueue | events_ |
Base class to be derived by each resolution scheme to hold all of the temporary memories and states related to the resolution of a problem. The rationale is that a resolution scheme is stateless, and when given for the first time a problem to solve, creates a ProblemComputationData that it gives to the problem and retrieves at each further resolution. A problem computation data further act as a queue of events changing the problem definition.
|
virtualdefault |
|
inlineprotected |
|
protecteddelete |
|
inline |
Adding an event changing the problem definition, that needs to be handled by the resolution scheme. Events are stored in a queue (FIFO).
|
inline |
Add a set of variables, calling addVariable(VariablePtr var) on each variable.
|
inline |
Add a variable if not already present. Return true if the variable was effectively added. The class counts how many time a variable was added.
|
inline |
Clear the list of events.
|
inline |
Clear the variable vector.
|
inline |
List of events.
|
inline |
Is the queue not empty?
|
inline |
Read and remove the first event in the queue. Need the queue to be non-empty.
|
inline |
Remove a set of variables, calling removeVariable(Variable* v) on each variable.
|
inline |
Effectively remove a variable if as many calls were made to this method as to addVariable, for the given variable. Return true if the variable was really removed.
|
inline |
Set the value of the variables to that of the solution.
|
protectedpure virtual |
Need to put in x the solution of the computation.
|
inline |
|
inline |
Get the variables of the problem.
|
protected |
Problem definition events
|
protected |
The problem variable