13 _taskCounter(number0),
14 _taskAssociation(number1) {
27 return _taskCounter < rhs._taskCounter
28 or _taskCounter == rhs._taskCounter and _taskAssociation == TaskAssociation::TouchVertexFirstTime
29 and rhs._taskAssociation != TaskAssociation::TouchVertexFirstTime
30 or _taskCounter == rhs._taskCounter and _taskAssociation == TaskAssociation::TouchCellFirstTime
31 and rhs._taskAssociation == TaskAssociation::TouchVertexLastTime;
36 return _taskCounter == rhs._taskCounter and _taskAssociation == rhs._taskAssociation;
46 return not lhs.
equals(rhs);
54 std::string result =
"(" + std::to_string(_taskCounter) +
",";
55 switch (_taskAssociation) {
56 case TaskAssociation::TouchVertexFirstTime:
57 result +=
"touch-vertex-first-time(0)";
59 case TaskAssociation::TouchCellFirstTime:
60 result +=
"touch-cell-first-time(1)";
62 case TaskAssociation::TouchVertexLastTime:
63 result +=
"touch-vertex-last-time(2)";
81 +
static_cast<int>(_taskAssociation);
87 std::set<TaskNumber> converted;
89 converted.insert( numbers[i] );
96 std::ostringstream msg;
99 for (
auto& p : numbers) {
116 std::set<int> result;
117 for (
auto& p : numbers) {
119 result.insert(p.flatten());
129 std::set<::swift2::TaskNumber> result;
130 PendingDependencies::iterator p = pendingDependencies.begin();
131 while (p != pendingDependencies.end()) {
132 if (p->second == task) {
133 result.insert(p->first);
134 p = pendingDependencies.erase(p);
#define assertionEquals(lhs, rhs)
#define assertion1(expr, param)
bool operator!=(const swift2::TaskNumber &lhs, const swift2::TaskNumber &rhs)
bool operator==(const swift2::TaskNumber &lhs, const swift2::TaskNumber &rhs)
static constexpr int NoNumber
std::set< std::pair<::swift2::TaskNumber, ::swift2::TaskNumber > > PendingDependencies
Pending dependencies container.
int flatten(const TaskNumber &numbers)
Alias around method flatten().
std::string toString(const std::set< TaskNumber > &numbers)
std::set<::swift2::TaskNumber > getDependenciesForTask(const ::swift2::TaskNumber &task, PendingDependencies &pendingDependencies)
Extract set of dependencies for given task.
constexpr TaskNumber NoOutDependencies
static const TaskNumber NoOutDependencies
Defines the max indices for each entry in TaskNumber.
tarch::multicore::TaskNumber flatten() const
TaskNumber(int number0, TaskAssociation number1)
Construct new task number.
std::string toString() const
bool equals(const TaskNumber &rhs) const
bool operator<(const TaskNumber &rhs) const
Total order on object.