inline DistMatrix<T,MD,STAR,Int>::DistMatrix ( Int height, Int width, Int colAlignmentVC, T* buffer, Int ldim, const elem::Grid& g ) : AbstractDistMatrix<T,Int> (height,width,g.DiagPathRank(colAlignmentVC),0, (g.InGrid() && g.DiagPath()==g.DiagPath(colAlignmentVC) ? Shift(g.DiagPathRank(),g.DiagPathRank(colAlignmentVC),g.LCM()) : 0),0, (g.InGrid() && g.DiagPath()==g.DiagPath(colAlignmentVC) ? LocalLength(height,g.DiagPathRank(),g.DiagPathRank(colAlignmentVC),g.LCM()) : 0),width,buffer,ldim,g), diagPath_(g.DiagPath(colAlignmentVC)) { }
inline DistMatrix<T,MD,STAR,Int>::DistMatrix( const elem::Grid& g ) : AbstractDistMatrix<T,Int> (0,0,false,false,0,0, (g.InGrid() && g.DiagPath()==0 ? g.DiagPathRank() : 0),0, 0,0,g), diagPath_(0) { }
inline DistMatrix<T,MD,STAR,Int>::DistMatrix ( bool constrainedColAlignment, Int colAlignmentVC, const elem::Grid& g ) : AbstractDistMatrix<T,Int> (0,0,constrainedColAlignment,false,g.DiagPathRank(colAlignmentVC),0, (g.InGrid() && g.DiagPath()==g.DiagPath(colAlignmentVC) ? Shift(g.DiagPathRank(),g.DiagPathRank(colAlignmentVC),g.LCM()) : 0),0, 0,0,g), diagPath_(g.DiagPath(colAlignmentVC)) { }
inline DistMatrix<T,MD,STAR,Int>::DistMatrix ( Int height, Int width, const elem::Grid& g ) : AbstractDistMatrix<T,Int> (height,width,false,false,0,0, (g.InGrid() && g.DiagPath()==0 ? g.DiagPathRank() : 0),0, (g.InGrid() && g.DiagPath()==0 ? LocalLength(height,g.DiagPathRank(),0,g.LCM()) : 0),width,g), diagPath_(0) { }
inline void DistMatrix<T,MD,STAR,Int>::SetGrid( const elem::Grid& g ) { this->Empty(); this->grid_ = &g; this->diagPath_ = 0; this->colAlignment_ = 0; if( g.InGrid() && g.DiagPath()==0 ) this->colShift_ = g.DiagPathRank(); else this->colShift_ = 0; }