46 : m_ruby_system(ruby_system)
75 assert(MachineType_base_level((MachineType)(machine + 1)) -
76 MachineType_base_level(machine) == 1);
77 m_bits[MachineType_base_level(machine)] =
set;
100 assert(
m_bits.size() > 0);
101 for (
int i = 0;
i <
m_bits.size();
i++) {
109 for (MachineType machine = MachineType_FIRST;
110 machine < MachineType_NUM; ++machine) {
131 assert(
m_bits.size() > 0);
135 for (
int i = 0;
i <
m_bits.size();
i++) {
136 for (
int j = 0; j <
m_bits[
i].getSize(); j++) {
139 dest.push_back((
NodeID)
id);
149 assert(
m_bits.size() > 0);
152 for (
int i = 0;
i <
m_bits.size();
i++) {
161 assert(
m_bits.size() > 0);
168 assert(
m_bits.size() > 0);
170 for (
int i = 0;
i <
m_bits.size();
i++) {
173 MachineID mach = {MachineType_from_base_level(
i), j};
178 panic(
"No smallest element of an empty set.");
184 assert(
m_bits.size() > 0);
187 int size =
m_bits[MachineType_base_level(machine)].getSize();
188 for (
NodeID j = 0; j < size; j++) {
195 panic(
"No smallest element of given MachineType.");
202 assert(
m_bits.size() > 0);
203 for (
int i = 0;
i <
m_bits.size();
i++) {
215 assert(
m_bits.size() > 0);
216 for (
int i = 0;
i <
m_bits.size();
i++) {
228 assert(
m_bits.size() > 0);
231 for (
int i = 0;
i <
m_bits.size();
i++) {
241 assert(
m_bits.size() > 0);
244 for (
int i = 0;
i <
m_bits.size();
i++) {
254 assert(
m_bits.size() > 0);
256 for (
int i = 0;
i <
m_bits.size();
i++) {
267 assert(
m_bits.size() > 0);
270 for (
int i = 0;
i <
m_bits.size();
i++) {
281 assert(
m_bits.size() > 0);
290 m_bits.resize(MachineType_base_level(MachineType_NUM));
291 assert(
m_bits.size() == MachineType_NUM);
293 for (
int i = 0;
i <
m_bits.size();
i++) {
301 assert(
m_bits.size() > 0);
302 out <<
"[NetDest (" <<
m_bits.size() <<
") ";
304 for (
int i = 0;
i <
m_bits.size();
i++) {
305 for (
int j = 0; j <
m_bits[
i].getSize(); j++) {
316 assert(
m_bits.size() > 0);
317 assert(
m_bits.size() ==
n.m_bits.size());
318 for (
unsigned int i = 0;
i <
m_bits.size(); ++
i) {
void add(MachineID newElement)
void remove(MachineID oldElement)
std::vector< NodeID > getAllDest()
NetDest AND(const NetDest &andNetDest) const
RubySystem * m_ruby_system
NetDest OR(const NetDest &orNetDest) const
int MachineType_base_count(const MachineType &obj)
bool isElement(MachineID element) const
bool isEqual(const NetDest &netDest) const
std::vector< Set > m_bits
void removeNetDest(const NetDest &netDest)
NodeID elementAt(MachineID index)
void addNetDest(const NetDest &netDest)
void setNetDest(MachineType machine, const Set &set)
MachineID smallestElement() const
bool intersectionIsNotEmpty(const NetDest &other_netDest) const
bool intersectionIsEmpty(const NetDest &other_netDest) const
int vecIndex(MachineID m) const
bool isSuperset(const NetDest &test) const
int MachineType_base_number(const MachineType &obj)
void print(std::ostream &out) const
NodeID bitIndex(NodeID index) const
int MachineType_base_number(const MachineType &obj)
int MachineType_base_count(const MachineType &obj)
#define panic(...)
This implements a cprintf based panic() function.
Copyright (c) 2024 Arm Limited All rights reserved.
NodeID num
range: 0 ... number of this machine's components in system - 1