26class ALIEN_EXPORT SYCLDistStructInfo
38 SYCLDistStructInfo(
const SYCLDistStructInfo& src)
44 SYCLDistStructInfo& operator=(
const SYCLDistStructInfo& src)
50 void computeUpperDiagOffset(
const ProfileType& profile)
const
52 auto nrows = profile.getNRows();
53 auto const* kcol = profile.kcol();
54 auto const* lrow_size = profile.localRowSize();
55 m_upper_diag_offset.resize(nrows);
56 for (std::size_t irow = 0; irow < nrows; ++irow)
58 std::size_t begin = kcol[irow] ;
59 std::size_t end = kcol[irow] + lrow_size[irow] ;
60 std::size_t index = begin;
61 for (std::size_t k = begin; k < end; ++k)
63 if (std::size_t(m_cols[k]) < irow)
68 m_upper_diag_offset[irow] = int(index);
72 ConstArrayView<Integer> getUpperDiagOffset(
const ProfileType& profile)
const
74 if (m_upper_diag_offset.size() == 0)
75 computeUpperDiagOffset(profile);
76 return m_upper_diag_offset.constView();
79 int const* dcol(
const ProfileType& profile)
const
81 getUpperDiagOffset(profile);
82 return this->m_upper_diag_offset.data();