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 ); }
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 ); }
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 ); }
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 ); }