18 :
Msg(
ObjId( managerId_, (msgIndex != 0) ? msgIndex: msg_.size() ),
22 if ( msgIndex == 0 ) {
23 msg_.push_back(
this );
25 if (
msg_.size() <= msgIndex )
26 msg_.resize( msgIndex + 1 );
27 msg_[ msgIndex ] =
this;
56 for (
unsigned int i = 0; i <
e2_->
numData(); ++i ) {
57 if ( j >= 0 && j < numData1 )
58 v[i].resize( 1,
Eref(
e1_, j ) );
69 for (
unsigned int i = 0; i <
e1_->
numData(); ++i ) {
70 if ( j >= 0 && j < numData2 )
71 v[i].resize( 1,
Eref(
e2_, j ) );
98 unsigned int ui2 = i2;
105 unsigned int ui1 = i1;
114 FuncId fid,
unsigned int b,
unsigned int n )
const
119 if ( orig ==
e1() ) {
122 }
else if ( orig ==
e2() ) {
132 cout <<
"Error: DiagonalMsg::copy: DiagonalSliceMsg not yet implemented\n";
146 assert( index <
msg_.size() );
147 return reinterpret_cast< char*
>(
msg_[index] );
161 "The stride is the increment to the src DataId that gives the"
163 "It can be positive or negative, but bounds checking"
164 "takes place and it does not wrap around.",
169 static Finfo* msgFinfos[] = {
178 sizeof( msgFinfos ) /
sizeof(
Finfo* ),
static char * lookupMsg(unsigned int index)
Static function for Msg access.
Msg * copy(Id origSrc, Id newSrc, Id newTgt, FuncId fid, unsigned int b, unsigned int n) const
void sources(vector< vector< Eref > > &v) const
Element * element() const
Synonym for Id::operator()()
unsigned int dataIndex() const
void addMsgAndFunc(ObjId mid, FuncId fid, BindIndex bindIndex)
Eref firstTgt(const Eref &src) const
Element * element() const
ObjId findOtherEnd(ObjId end) const
void setStride(int stride)
void targets(vector< vector< Eref > > &v) const
static unsigned int numMsg()
Msg lookup functions.
static const Cinfo * msgCinfo
static const Cinfo * initCinfo()
Setup function for Element-style access to Msg fields.
virtual unsigned int numData() const =0
Returns number of data entries across all nodes.
Element * e1_
Index of this Msg on the msg_ vector.
static const Cinfo * assignmentMsgCinfo
static vector< DiagonalMsg * > msg_
DiagonalMsg(Element *e1, Element *e2, unsigned int msgIndex)
Element * e2_
Element 1 attached to Msg.
const unsigned int BADINDEX
Used by ObjId and Eref.
static const Cinfo * initCinfo()