示例#1
0
void SetImagPartOfDiagonal( Matrix<T>& A, const Matrix<Base<T>>& d, Int offset )
{
    DEBUG_ONLY(CallStackEntry cse("SetImagPartOfDiagonal"))
    std::function<void(T&,Base<T>)> func
    ( []( T& beta, Base<T> gamma ) { SetImagPart(beta,gamma); } );
    UpdateMappedDiagonal( A, d, func, offset );
}
void UpdateDiagonal( Matrix<T>& A, T alpha, const Matrix<T>& d, Int offset )
{
    DEBUG_ONLY(CSE cse("UpdateDiagonal"))
    function<void(T&,T)> func
    ( [alpha]( T& beta, T gamma ) { beta += alpha*gamma; } );
    UpdateMappedDiagonal( A, d, func, offset );
}
示例#3
0
void SetDiagonal( Matrix<T>& A, const Matrix<T>& d, Int offset )
{
    DEBUG_ONLY(CallStackEntry cse("SetDiagonal"))
    std::function<void(T&,T)> func
    ( []( T& beta, T gamma ) { beta = gamma; } );
    UpdateMappedDiagonal( A, d, func, offset );
}
示例#4
0
void SetRealPartOfDiagonal( Matrix<T>& A, const Matrix<Base<T>>& d, Int offset )
{
    DEBUG_ONLY(CSE cse("SetRealPartOfDiagonal"))
    function<void(T&,Base<T>)> func
    ( []( T& beta, Base<T> gamma ) { SetRealPart(beta,gamma); } );
    UpdateMappedDiagonal( A, d, func, offset );
}
void UpdateImagPartOfDiagonal
( Matrix<T>& A, Base<T> alpha, const Matrix<Base<T>>& d, Int offset )
{
    DEBUG_ONLY(CSE cse("UpdateImagPartOfDiagonal"))
    function<void(T&,Base<T>)> func
    ( [alpha]( T& beta, Base<T> gamma ) { UpdateImagPart(beta,alpha*gamma); } );
    UpdateMappedDiagonal( A, d, func, offset );
}
示例#6
0
void SetDiagonal
( DistMatrix<T,U,V>& A, const ElementalMatrix<T>& d, Int offset )
{
    DEBUG_ONLY(CSE cse("SetDiagonal"))
    function<void(T&,T)> func
    ( []( T& beta, T gamma ) { beta = gamma; } );
    UpdateMappedDiagonal( A, d, func, offset );
}
void UpdateRealPartOfDiagonal
( SparseMatrix<T>& A, Base<T> alpha, const Matrix<Base<T>>& d, Int offset, 
  bool diagExists )
{
    DEBUG_ONLY(CSE cse("UpdateRealPartOfDiagonal"))
    function<void(T&,Base<T>)> func
    ( [alpha]( T& beta, Base<T> gamma ) { UpdateRealPart(beta,alpha*gamma); } );
    UpdateMappedDiagonal( A, d, func, offset, diagExists );
}
void UpdateDiagonal
( DistSparseMatrix<T>& A, T alpha, const DistMultiVec<T>& d, Int offset,
  bool diagExists )
{
    DEBUG_ONLY(CSE cse("UpdateDiagonal"))
    function<void(T&,T)> func
    ( [alpha]( T& beta, T gamma ) { beta += alpha*gamma; } );
    UpdateMappedDiagonal( A, d, func, offset, diagExists );
}