示例#1
0
DM& DM::operator=( const DistMatrix<T,VR,STAR>& A )
{ 
    DEBUG_ONLY(CSE cse("[STAR,VC] = [VR,STAR]"))
    DistMatrix<T,MR,MC> A_MR_MC( A );
    *this = A_MR_MC;
    return *this;
}
示例#2
0
DM& DM::operator=( const DistMatrix<T,STAR,MC>& A )
{ 
    DEBUG_CSE
    DistMatrix<T,MR,MC> A_MR_MC( A );
    *this = A_MR_MC;
    return *this;
}
示例#3
0
BDM& BDM::operator=( const DistMatrix<T,MR,STAR,BLOCK>& A )
{ 
    DEBUG_ONLY(CSE cse("[STAR,MC] = [MR,STAR]"))
    DistMatrix<T,MR,MC,BLOCK> A_MR_MC( A );
    *this = A_MR_MC;
    return *this;
}
示例#4
0
BDM& BDM::operator=( const DistMatrix<T,VR,STAR,BLOCK>& A )
{
    DEBUG_CSE
    DistMatrix<T,MR,MC,BLOCK> A_MR_MC( A );
    *this = A_MR_MC;
    return *this;
}
示例#5
0
const DM&
DM::operator=( const DistMatrix<T,STAR,MC>& A )
{ 
    DEBUG_ONLY(CallStackEntry cse("[VR,* ] = [* ,MC]"))
    DistMatrix<T,MR,MC> A_MR_MC( A );
    *this = A_MR_MC;
    return *this;
}
示例#6
0
BDM&
BDM::operator=( const BlockDistMatrix<T,STAR,MC>& A )
{ 
    DEBUG_ONLY(CallStackEntry cse("[VR,STAR] = [STAR,MC]"))
    BlockDistMatrix<T,MR,MC> A_MR_MC( A );
    *this = A_MR_MC;
    return *this;
}
示例#7
0
DM& DM::operator=( const DistMatrix<T,MR,STAR>& A )
{ 
    DEBUG_CSE
    DistMatrix<T,MR,MC> A_MR_MC( A );
    DistMatrix<T,STAR,VC> A_STAR_VC( A_MR_MC );
    A_MR_MC.Empty(); 
    *this = A_STAR_VC;
    return *this;
}
示例#8
0
BDM& BDM::operator=( const DistMatrix<T,CIRC,CIRC,BLOCK>& A )
{
    DEBUG_CSE
    DistMatrix<T,MR,MC,BLOCK> A_MR_MC( A.Grid() );
    A_MR_MC.AlignWith( *this );
    A_MR_MC = A;
    *this = A_MR_MC;
    return *this;
}
示例#9
0
DM& DM::operator=( const DistMatrix<T,MR,STAR>& A )
{ 
    DEBUG_ONLY(CSE cse("[STAR,VR] = [MR,STAR]"))
    DistMatrix<T,MR,MC> A_MR_MC( A );
    DistMatrix<T,STAR,VC> A_STAR_VC( A_MR_MC );
    A_MR_MC.Empty(); 
    *this = A_STAR_VC;
    return *this;
}
示例#10
0
BDM& BDM::operator=( const DistMatrix<T,STAR,MC,BLOCK>& A )
{
    EL_DEBUG_CSE
    DistMatrix<T,MR,MC,BLOCK> A_MR_MC( A );
    DistMatrix<T,VR,STAR,BLOCK> A_VR_STAR( A_MR_MC );
    A_MR_MC.Empty();
    *this = A_VR_STAR;
    return *this;
}
示例#11
0
DM& DM::operator=( const DistMatrix<T,STAR,VC>& A )
{ 
    DEBUG_ONLY(CSE cse("[VC,STAR] = [STAR,VC]"))
    DistMatrix<T,MR,MC> A_MR_MC( A );
    DistMatrix<T,VR,STAR> A_VR_STAR( A_MR_MC );
    A_MR_MC.Empty(); 
    *this = A_VR_STAR;
    return *this;
}
示例#12
0
BDM& BDM::operator=( const DistMatrix<T,CIRC,CIRC,BLOCK>& A )
{
    DEBUG_ONLY(CSE cse("[STAR,MC] = [CIRC,CIRC]"))
    DistMatrix<T,MR,MC,BLOCK> A_MR_MC( A.Grid() );
    A_MR_MC.AlignWith( *this );
    A_MR_MC = A;
    *this = A_MR_MC;
    return *this;
}
示例#13
0
DM&
DM::operator=( const DistMatrix<T,MR,STAR>& A )
{ 
    DEBUG_ONLY(CallStackEntry cse("[STAR,VR] = [MR,STAR]"))
    std::unique_ptr<DistMatrix<T,MR,MC>> A_MR_MC( new DistMatrix<T,MR,MC>(A) );
    std::unique_ptr<DistMatrix<T,STAR,VC>> 
        A_STAR_VC( new DistMatrix<T,STAR,VC>(*A_MR_MC) );
    delete A_MR_MC.release(); // lowers memory highwater
    *this = *A_STAR_VC;
    return *this;
}
示例#14
0
BDM& BDM::operator=( const DistMatrix<T,STAR,VR,BLOCK>& A )
{
    EL_DEBUG_CSE
    DistMatrix<T,STAR,VC,BLOCK> A_STAR_VC( A );
    DistMatrix<T,MR,  MC,BLOCK> A_MR_MC( this->Grid() );
    A_MR_MC.AlignColsWith(*this);
    A_MR_MC = A_STAR_VC;
    A_STAR_VC.Empty();

    *this = A_MR_MC;
    return *this;
}
示例#15
0
BDM& BDM::operator=( const DistMatrix<T,STAR,VR,BLOCK>& A )
{ 
    DEBUG_ONLY(CSE cse("[MR,STAR] = [STAR,VR]"))
    DistMatrix<T,STAR,VC,BLOCK> A_STAR_VC( A );
    DistMatrix<T,MR,  MC,BLOCK> A_MR_MC( this->Grid() );
    A_MR_MC.AlignColsWith(*this);
    A_MR_MC = A_STAR_VC;
    A_STAR_VC.Empty(); 

    *this = A_MR_MC;
    return *this;
}
示例#16
0
BDM&
BDM::operator=( const BlockDistMatrix<T,STAR,MC>& A )
{ 
    DEBUG_ONLY(CallStackEntry cse("[VC,STAR] = [STAR,MC]"))
    std::unique_ptr<BlockDistMatrix<T,MR,MC>> 
        A_MR_MC( new BlockDistMatrix<T,MR,MC>(A) );
    std::unique_ptr<BlockDistMatrix<T,VR,STAR>> 
        A_VR_STAR( new BlockDistMatrix<T,VR,STAR>(*A_MR_MC) );
    delete A_MR_MC.release(); // lowers memory highwater
    *this = *A_VR_STAR;
    return *this;
}
示例#17
0
BDM& BDM::operator=( const DistMatrix<T,VC,STAR,BLOCK>& A )
{
    DEBUG_CSE
    DistMatrix<T,VR,STAR,BLOCK> A_VR_STAR( A );
    DistMatrix<T,MR,MC,BLOCK> A_MR_MC( this->Grid() );
    A_MR_MC.AlignRowsWith(*this);
    A_MR_MC = A_VR_STAR;
    A_VR_STAR.Empty();

    *this = A_MR_MC;
    return *this;
}
示例#18
0
BDM& BDM::operator=( const DistMatrix<T,STAR,MC,BLOCK>& A )
{ 
    DEBUG_ONLY(CSE cse("[MC,STAR] = [STAR,MC]"))
    DistMatrix<T,MR,MC,BLOCK> A_MR_MC( A );
    DistMatrix<T,VR,STAR,BLOCK> A_VR_STAR( A_MR_MC );
    A_MR_MC.Empty();

    DistMatrix<T,VC,STAR,BLOCK> A_VC_STAR( this->Grid() );
    A_VC_STAR.AlignColsWith(*this);
    A_VC_STAR = A_VR_STAR;
    A_VR_STAR.Empty(); 

    *this = A_VC_STAR;
    return *this;
}
示例#19
0
DM& DM::operator=( const DistMatrix<T,STAR,MC>& A )
{
    DEBUG_ONLY(CallStackEntry cse("[MC,STAR] = [STAR,MC]"))
    std::unique_ptr<DistMatrix<T,MR,MC>> 
        A_MR_MC( new DistMatrix<T,MR,MC>(A) );
    std::unique_ptr<DistMatrix<T,VR,STAR>> 
        A_VR_STAR( new DistMatrix<T,VR,STAR>(*A_MR_MC) );
    delete A_MR_MC.release(); // lowers memory highwater

    std::unique_ptr<DistMatrix<T,VC,STAR>> 
        A_VC_STAR( new DistMatrix<T,VC,STAR>(this->Grid()) );
    A_VC_STAR->AlignColsWith(*this);
    *A_VC_STAR = *A_VR_STAR;
    delete A_VR_STAR.release(); // lowers memory highwater

    *this = *A_VC_STAR;
    return *this;
}