本文整理汇总了C++中tensor_type::i_begin方法的典型用法代码示例。如果您正苦于以下问题:C++ tensor_type::i_begin方法的具体用法?C++ tensor_type::i_begin怎么用?C++ tensor_type::i_begin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类tensor_type
的用法示例。
在下文中一共展示了tensor_type::i_begin方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: apply
KOKKOS_INLINE_FUNCTION
static void apply( const tensor_type & tensor ,
const MatrixValue * const a ,
const VectorValue * const x ,
VectorValue * const y )
{
const size_type nk = tensor.num_k();
// Loop over k
for ( size_type k = 0; k < nk; ++k) {
const MatrixValue ak = a[k];
const VectorValue xk = x[k];
// Loop over j for this k
const size_type nj = tensor.num_j(k);
const size_type jBeg = tensor.j_begin(k);
const size_type jEnd = jBeg + nj;
for (size_type jEntry = jBeg; jEntry < jEnd; ++jEntry) {
const size_type j = tensor.j_coord(jEntry);
VectorValue tmp = a[j] * xk + ak * x[j];
// Loop over i for this k,j
const size_type ni = tensor.num_i(jEntry);
const size_type iBeg = tensor.i_begin(jEntry);
const size_type iEnd = iBeg + ni;
for (size_type iEntry = iBeg; iEntry < iEnd; ++iEntry) {
const size_type i = tensor.i_coord(iEntry);
y[i] += tensor.value(iEntry) * tmp;
}
}
}
}