removing one level of virtual functions. May make code run faster
[charm.git] / src / conv-com / hypercubetopology.h
1 #ifndef __HYPERCUBE_TOPOLOGY_H
2 #define __HYPERCUBE_TOPOLOGY_H
3
4 #include "graphrouter.h"
5 #include "string.h"
6
7 class HypercubeTopology: public TopologyDescriptor {
8     int NumPes, MyPe, Dim;
9     int *penum, **next;
10
11     void CreateStageTable(int, int *);
12     
13  public:
14     HypercubeTopology(int npes, int mype);
15     //Entry methods which will define the specific graph.
16     void getNeighbors(int &npes, int *pelist);
17     int getNumStages();
18     int getNumSteps(int stage);
19     void getPesToSend(int step, int stage, int &npesToSend, 
20                               int *pelist, int &nextpe);
21     int getNumMessagesExpected(int stage);
22 };
23
24 #endif