本文整理汇总了C++中DistSparseMatrix::ProcessLocalQueues方法的典型用法代码示例。如果您正苦于以下问题:C++ DistSparseMatrix::ProcessLocalQueues方法的具体用法?C++ DistSparseMatrix::ProcessLocalQueues怎么用?C++ DistSparseMatrix::ProcessLocalQueues使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DistSparseMatrix
的用法示例。
在下文中一共展示了DistSparseMatrix::ProcessLocalQueues方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: T
void ShiftDiagonal
( DistSparseMatrix<T>& A, S alphaPre, Int offset, bool existingDiag )
{
EL_DEBUG_CSE
const Int mLocal = A.LocalHeight();
const Int n = A.Width();
const T alpha = T(alphaPre);
if( existingDiag )
{
T* valBuf = A.ValueBuffer();
for( Int iLoc=0; iLoc<mLocal; ++iLoc )
{
const Int i = A.GlobalRow(iLoc);
const Int e = A.Offset( iLoc, i+offset );
valBuf[e] += alpha;
}
}
else
{
A.Reserve( mLocal );
for( Int iLoc=0; iLoc<mLocal; ++iLoc )
{
const Int i = A.GlobalRow(iLoc);
if( i+offset >= 0 && i+offset < n )
A.QueueLocalUpdate( iLoc, i+offset, alpha );
}
A.ProcessLocalQueues();
}
}
示例2: Fill
void Fill( DistSparseMatrix<T>& A, T alpha )
{
EL_DEBUG_CSE
const Int m = A.Height();
const Int n = A.Width();
A.Resize( m, n );
Zero( A );
if( alpha != T(0) )
{
const Int localHeight = A.LocalHeight();
A.Reserve( localHeight*n );
for( Int iLoc=0; iLoc<localHeight; ++iLoc )
for( Int j=0; j<n; ++j )
A.QueueLocalUpdate( iLoc, j, alpha );
A.ProcessLocalQueues();
}
}