16 _taskCounter(number0),
17 _taskAssociation(number1) {
20 }
else if (number0 != std::numeric_limits<int>::max()) {
29 return _taskCounter < rhs._taskCounter
30 or _taskCounter == rhs._taskCounter and _taskAssociation == TaskAssociation::TouchVertexFirstTime
31 and rhs._taskAssociation != TaskAssociation::TouchVertexFirstTime
32 or _taskCounter == rhs._taskCounter and _taskAssociation == TaskAssociation::TouchCellFirstTime
33 and rhs._taskAssociation == TaskAssociation::TouchVertexLastTime;
38 return _taskCounter == rhs._taskCounter and _taskAssociation == rhs._taskAssociation;
48 return not lhs.
equals(rhs);
56 std::string result =
"(" + std::to_string(_taskCounter) +
",";
57 switch (_taskAssociation) {
58 case TaskAssociation::TouchVertexFirstTime:
59 result +=
"touch-vertex-first-time(0)";
61 case TaskAssociation::TouchCellFirstTime:
62 result +=
"touch-cell-first-time(1)";
64 case TaskAssociation::TouchVertexLastTime:
65 result +=
"touch-vertex-last-time(2)";
81 return _taskCounter *
static_cast<int>(Max._taskAssociation)
82 +
static_cast<int>(_taskAssociation);
88 std::ostringstream msg;
91 for (
auto& p : numbers) {
108 std::set<int> result;
109 for (
auto& p : numbers) {
111 result.insert(p.flatten());
121 std::set<::swift2::TaskNumber> result;
122 PendingDependencies::iterator p = pendingDependencies.begin();
123 while (p != pendingDependencies.end()) {
124 if (p->second == task) {
125 result.insert(p->first);
126 p = pendingDependencies.erase(p);
#define assertion1(expr, param)
bool operator!=(const swift2::TaskNumber &lhs, const swift2::TaskNumber &rhs)
bool operator==(const swift2::TaskNumber &lhs, const swift2::TaskNumber &rhs)
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 NoDependencies
static const TaskNumber NoDependencies
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.
static const TaskNumber Max
Defines the max indices for each entry in TaskNumber.