PaCO++  0.05
CommMatrix.h
Go to the documentation of this file.
1 #ifndef _COMMMATRIX_H
2 #define _COMMMATRIX_H
3 
4 // represents a communication matrix
5 
6 class CommMatrix {
7 
8  unsigned _ssz;
9  unsigned _rsz;
10  long* _mat;
11 
12 public:
13 
14  CommMatrix(unsigned ssz=1, unsigned rsz=1);
16  ~CommMatrix();
17 
18  unsigned getSenderSize() const { return _ssz; }
19  unsigned getReceiverSize() const { return _rsz; }
20 
21  void set(unsigned sid, unsigned rid, long val) { _mat[sid*_rsz+rid] = val; }
22  long get(unsigned sid, unsigned rid) const { return _mat[sid*_rsz+rid]; }
23  void add(unsigned sid, unsigned rid, long val) { _mat[sid*_rsz+rid] += val; }
24  void sub(unsigned sid, unsigned rid, long val) { _mat[sid*_rsz+rid] -= val; }
25 
26  void dump() const;
27 
28 private:
29  long* _get_mat() const { return _mat; }
30 
31 };
32 
33 
34 #endif
void add(unsigned sid, unsigned rid, long val)
Definition: CommMatrix.h:23
void dump() const
Definition: CommMatrix.cc:43
void sub(unsigned sid, unsigned rid, long val)
Definition: CommMatrix.h:24
unsigned getReceiverSize() const
Definition: CommMatrix.h:19
long * _get_mat() const
Definition: CommMatrix.h:29
CommMatrix(unsigned ssz=1, unsigned rsz=1)
Definition: CommMatrix.cc:6
unsigned _rsz
Definition: CommMatrix.h:9
unsigned getSenderSize() const
Definition: CommMatrix.h:18
unsigned _ssz
Definition: CommMatrix.h:8
long * _mat
Definition: CommMatrix.h:10