1d0
<
30,38d28
< /*
< * NetDest.C
< *
< * Description: See NetDest.hh
< *
< * $Id$
< *
< */
<
47c37,38
< void NetDest::add(MachineID newElement)
---
> void
> NetDest::add(MachineID newElement)
49c40
< m_bits[vecIndex(newElement)].add(bitIndex(newElement.num));
---
> m_bits[vecIndex(newElement)].add(bitIndex(newElement.num));
52c43,44
< void NetDest::addNetDest(const NetDest& netDest)
---
> void
> NetDest::addNetDest(const NetDest& netDest)
54,57c46,49
< assert(m_bits.size() == netDest.getSize());
< for (int i = 0; i < m_bits.size(); i++) {
< m_bits[i].addSet(netDest.m_bits[i]);
< }
---
> assert(m_bits.size() == netDest.getSize());
> for (int i = 0; i < m_bits.size(); i++) {
> m_bits[i].addSet(netDest.m_bits[i]);
> }
60c52,53
< void NetDest::addRandom()
---
> void
> NetDest::addRandom()
62,63c55,56
< int i = random()%m_bits.size();
< m_bits[i].addRandom();
---
> int i = random()%m_bits.size();
> m_bits[i].addRandom();
66c59,60
< void NetDest::setNetDest(MachineType machine, const Set& set)
---
> void
> NetDest::setNetDest(MachineType machine, const Set& set)
68,70c62,65
< // assure that there is only one set of destinations for this machine
< assert(MachineType_base_level((MachineType)(machine+1)) - MachineType_base_level(machine) == 1);
< m_bits[MachineType_base_level(machine)] = set;
---
> // assure that there is only one set of destinations for this machine
> assert(MachineType_base_level((MachineType)(machine + 1)) -
> MachineType_base_level(machine) == 1);
> m_bits[MachineType_base_level(machine)] = set;
73c68,69
< void NetDest::remove(MachineID oldElement)
---
> void
> NetDest::remove(MachineID oldElement)
75c71
< m_bits[vecIndex(oldElement)].remove(bitIndex(oldElement.num));
---
> m_bits[vecIndex(oldElement)].remove(bitIndex(oldElement.num));
78c74,75
< void NetDest::removeNetDest(const NetDest& netDest)
---
> void
> NetDest::removeNetDest(const NetDest& netDest)
80,84c77,80
< assert(m_bits.size() == netDest.getSize());
< for (int i = 0; i < m_bits.size(); i++) {
< m_bits[i].removeSet(netDest.m_bits[i]);
<
< }
---
> assert(m_bits.size() == netDest.getSize());
> for (int i = 0; i < m_bits.size(); i++) {
> m_bits[i].removeSet(netDest.m_bits[i]);
> }
87c83,84
< void NetDest::clear()
---
> void
> NetDest::clear()
89,91c86,88
< for (int i = 0; i < m_bits.size(); i++) {
< m_bits[i].clear();
< }
---
> for (int i = 0; i < m_bits.size(); i++) {
> m_bits[i].clear();
> }
94c91,92
< void NetDest::broadcast()
---
> void
> NetDest::broadcast()
96,98c94,97
< for (MachineType machine = MachineType_FIRST; machine < MachineType_NUM; ++machine) {
< broadcast(machine);
< }
---
> for (MachineType machine = MachineType_FIRST;
> machine < MachineType_NUM; ++machine) {
> broadcast(machine);
> }
101,106c100,106
< void NetDest::broadcast(MachineType machineType) {
<
< for (int i = 0; i < MachineType_base_count(machineType); i++) {
< MachineID mach = {machineType, i};
< add(mach);
< }
---
> void
> NetDest::broadcast(MachineType machineType)
> {
> for (int i = 0; i < MachineType_base_count(machineType); i++) {
> MachineID mach = {machineType, i};
> add(mach);
> }
110,118c110,120
< Vector<NodeID> NetDest::getAllDest() {
< Vector<NodeID> dest;
< dest.clear();
< for (int i=0; i<m_bits.size(); i++) {
< for (int j=0; j<m_bits[i].getSize(); j++) {
< if (m_bits[i].isElement(j)) {
< dest.insertAtBottom((NodeID) (MachineType_base_number((MachineType) i) + j));
< }
< }
---
> Vector<NodeID>
> NetDest::getAllDest()
> {
> Vector<NodeID> dest;
> dest.clear();
> for (int i = 0; i < m_bits.size(); i++) {
> for (int j = 0; j < m_bits[i].getSize(); j++) {
> if (m_bits[i].isElement(j)) {
> int id = MachineType_base_number((MachineType)i) + j;
> dest.insertAtBottom((NodeID)id);
> }
120c122,123
< return dest;
---
> }
> return dest;
123c126,127
< int NetDest::count() const
---
> int
> NetDest::count() const
125,129c129,133
< int counter = 0;
< for (int i=0; i<m_bits.size(); i++) {
< counter += m_bits[i].count();
< }
< return counter;
---
> int counter = 0;
> for (int i = 0; i < m_bits.size(); i++) {
> counter += m_bits[i].count();
> }
> return counter;
132,133c136,139
< NodeID NetDest::elementAt(MachineID index) {
< return m_bits[vecIndex(index)].elementAt(bitIndex(index.num));
---
> NodeID
> NetDest::elementAt(MachineID index)
> {
> return m_bits[vecIndex(index)].elementAt(bitIndex(index.num));
136c142,143
< MachineID NetDest::smallestElement() const
---
> MachineID
> NetDest::smallestElement() const
138,144c145,152
< assert(count() > 0);
< for (int i=0; i<m_bits.size(); i++) {
< for (int j=0; j<m_bits[i].getSize(); j++) {
< if (m_bits[i].isElement(j)) {
< MachineID mach = {MachineType_from_base_level(i), j};
< return mach;
< }
---
> assert(count() > 0);
> for (int i = 0; i < m_bits.size(); i++) {
> for (int j = 0; j < m_bits[i].getSize(); j++) {
> if (m_bits[i].isElement(j)) {
> MachineID mach = {MachineType_from_base_level(i), j};
> return mach;
> }
> }
146,147c154
< }
< ERROR_MSG("No smallest element of an empty set.");
---
> ERROR_MSG("No smallest element of an empty set.");
150c157,158
< MachineID NetDest::smallestElement(MachineType machine) const
---
> MachineID
> NetDest::smallestElement(MachineType machine) const
152,155c160,165
< for (int j = 0; j < m_bits[MachineType_base_level(machine)].getSize(); j++) {
< if (m_bits[MachineType_base_level(machine)].isElement(j)) {
< MachineID mach = {machine, j};
< return mach;
---
> int size = m_bits[MachineType_base_level(machine)].getSize();
> for (int j = 0; j < size; j++) {
> if (m_bits[MachineType_base_level(machine)].isElement(j)) {
> MachineID mach = {machine, j};
> return mach;
> }
157d166
< }
159c168
< ERROR_MSG("No smallest element of given MachineType.");
---
> ERROR_MSG("No smallest element of given MachineType.");
162d170
<
164c172,173
< bool NetDest::isBroadcast() const
---
> bool
> NetDest::isBroadcast() const
166,168c175,178
< for (int i=0; i<m_bits.size(); i++) {
< if (!m_bits[i].isBroadcast()) {
< return false;
---
> for (int i = 0; i < m_bits.size(); i++) {
> if (!m_bits[i].isBroadcast()) {
> return false;
> }
170,171c180
< }
< return true;
---
> return true;
175c184,185
< bool NetDest::isEmpty() const
---
> bool
> NetDest::isEmpty() const
177,179c187,190
< for (int i=0; i<m_bits.size(); i++) {
< if (!m_bits[i].isEmpty()) {
< return false;
---
> for (int i = 0; i < m_bits.size(); i++) {
> if (!m_bits[i].isEmpty()) {
> return false;
> }
181,182c192
< }
< return true;
---
> return true;
186c196,197
< NetDest NetDest::OR(const NetDest& orNetDest) const
---
> NetDest
> NetDest::OR(const NetDest& orNetDest) const
188,193c199,204
< assert(m_bits.size() == orNetDest.getSize());
< NetDest result;
< for (int i=0; i<m_bits.size(); i++) {
< result.m_bits[i] = m_bits[i].OR(orNetDest.m_bits[i]);
< }
< return result;
---
> assert(m_bits.size() == orNetDest.getSize());
> NetDest result;
> for (int i = 0; i < m_bits.size(); i++) {
> result.m_bits[i] = m_bits[i].OR(orNetDest.m_bits[i]);
> }
> return result;
196d206
<
198c208,209
< NetDest NetDest::AND(const NetDest& andNetDest) const
---
> NetDest
> NetDest::AND(const NetDest& andNetDest) const
200,205c211,216
< assert(m_bits.size() == andNetDest.getSize());
< NetDest result;
< for (int i=0; i<m_bits.size(); i++) {
< result.m_bits[i] = m_bits[i].AND(andNetDest.m_bits[i]);
< }
< return result;
---
> assert(m_bits.size() == andNetDest.getSize());
> NetDest result;
> for (int i = 0; i < m_bits.size(); i++) {
> result.m_bits[i] = m_bits[i].AND(andNetDest.m_bits[i]);
> }
> return result;
209c220,221
< bool NetDest::intersectionIsNotEmpty(const NetDest& other_netDest) const
---
> bool
> NetDest::intersectionIsNotEmpty(const NetDest& other_netDest) const
211,214c223,227
< assert(m_bits.size() == other_netDest.getSize());
< for (int i=0; i<m_bits.size(); i++) {
< if (m_bits[i].intersectionIsNotEmpty(other_netDest.m_bits[i])) {
< return true;
---
> assert(m_bits.size() == other_netDest.getSize());
> for (int i = 0; i < m_bits.size(); i++) {
> if (m_bits[i].intersectionIsNotEmpty(other_netDest.m_bits[i])) {
> return true;
> }
216,217c229
< }
< return false;
---
> return false;
220c232,233
< bool NetDest::isSuperset(const NetDest& test) const
---
> bool
> NetDest::isSuperset(const NetDest& test) const
222c235
< assert(m_bits.size() == test.getSize());
---
> assert(m_bits.size() == test.getSize());
224,226c237,240
< for (int i=0; i<m_bits.size(); i++) {
< if (!m_bits[i].isSuperset(test.m_bits[i])) {
< return false;
---
> for (int i = 0; i < m_bits.size(); i++) {
> if (!m_bits[i].isSuperset(test.m_bits[i])) {
> return false;
> }
228,229c242
< }
< return true;
---
> return true;
232c245,246
< bool NetDest::isElement(MachineID element) const
---
> bool
> NetDest::isElement(MachineID element) const
234c248
< return ((m_bits[vecIndex(element)])).isElement(bitIndex(element.num));
---
> return ((m_bits[vecIndex(element)])).isElement(bitIndex(element.num));
237c251,252
< void NetDest::setSize()
---
> void
> NetDest::setSize()
239,240c254,255
< m_bits.setSize(MachineType_base_level(MachineType_NUM));
< assert(m_bits.size() == MachineType_NUM);
---
> m_bits.setSize(MachineType_base_level(MachineType_NUM));
> assert(m_bits.size() == MachineType_NUM);
242,244c257,259
< for (int i = 0; i < m_bits.size(); i++) {
< m_bits[i].setSize(MachineType_base_count((MachineType)i));
< }
---
> for (int i = 0; i < m_bits.size(); i++) {
> m_bits[i].setSize(MachineType_base_count((MachineType)i));
> }
247c262,263
< void NetDest::print(ostream& out) const
---
> void
> NetDest::print(ostream& out) const
249c265
< out << "[NetDest (" << m_bits.size() << ") ";
---
> out << "[NetDest (" << m_bits.size() << ") ";
251,253c267,271
< for (int i=0; i<m_bits.size(); i++) {
< for (int j=0; j<m_bits[i].getSize(); j++) {
< out << (bool) m_bits[i].isElement(j) << " ";
---
> for (int i = 0; i < m_bits.size(); i++) {
> for (int j = 0; j < m_bits[i].getSize(); j++) {
> out << (bool) m_bits[i].isElement(j) << " ";
> }
> out << " - ";
255,257c273
< out << " - ";
< }
< out << "]";
---
> out << "]";