BDM& BDM::operator=( const BlockDistMatrix<T,STAR,MC>& A ) { DEBUG_ONLY(CSE cse("[MD,STAR] = [STAR,MC]")) // TODO: More efficient implementation? BlockDistMatrix<T,STAR,STAR> A_STAR_STAR(A); *this = A_STAR_STAR; return *this; }
BDM& BDM::operator=( const DistMatrix<T,STAR,MD,BLOCK>& A ) { DEBUG_ONLY(CSE cse("[MR,MC] = [STAR,MD]")) // TODO: More efficient implementation? DistMatrix<T,STAR,STAR,BLOCK> A_STAR_STAR( A ); *this = A_STAR_STAR; return *this; }
DM& DM::operator=( const DistMatrix<T,STAR,MC>& A ) { DEBUG_ONLY(CallStackEntry cse("[MD,STAR] = [STAR,MC]")) // TODO: More efficient implementation? DistMatrix<T,STAR,STAR> A_STAR_STAR( A ); *this = A_STAR_STAR; return *this; }
DM& DM::operator=( const DistMatrix<T,STAR,MD>& A ) { DEBUG_ONLY(CSE cse("[STAR,VR] = [STAR,MD]")) // TODO: Optimize this later if important DistMatrix<T,STAR,STAR> A_STAR_STAR( A ); *this = A_STAR_STAR; return *this; }
BDM& BDM::operator=( const BlockDistMatrix<T,STAR,MD>& A ) { DEBUG_ONLY(CallStackEntry cse("[VC,STAR] = [STAR,MD]")) // TODO: More efficient implementation? BlockDistMatrix<T,STAR,STAR> A_STAR_STAR( A ); *this = A_STAR_STAR; return *this; }
DM& DM::operator=( const DistMatrix<T,VC,STAR>& A ) { DEBUG_ONLY(CSE cse("[MD,STAR] = [VC,STAR]")) // TODO: More efficient implementation? DistMatrix<T,STAR,STAR> A_STAR_STAR( A ); *this = A_STAR_STAR; return *this; }
DM& DM::operator=( const DistMatrix<T,MD,STAR>& A ) { DEBUG_ONLY(CallStackEntry cse("[STAR,VC] = [MD,STAR]")) // TODO: Optimize this later if important DistMatrix<T,STAR,STAR> A_STAR_STAR( A ); *this = A_STAR_STAR; return *this; }
BDM& BDM::operator=( const DistMatrix<T,MD,STAR,BLOCK_CYCLIC>& A ) { DEBUG_ONLY(CSE cse("[STAR,VR] = [MD,STAR]")) // TODO: More efficient implementation? DistMatrix<T,STAR,STAR,BLOCK_CYCLIC> A_STAR_STAR( A ); *this = A_STAR_STAR; return *this; }