45 const local_map_type& lclRowMap,
46 const local_map_type& lclColMap,
47 const row_offsets_type& ptr,
48 const lcl_col_inds_type& ind,
49 const bool isSorted) :
50 diagOffsets_ (diagOffsets),
51 lclRowMap_ (lclRowMap),
52 lclColMap_ (lclColMap),
58 typedef Kokkos::RangePolicy<execution_space, LO> policy_type;
61 policy_type range (0, lclNumRows);
62 Kokkos::parallel_for (range, *
this);
74 Tpetra::Details::OrdinalTraits<diag_offset_type>::invalid ();
75 const GO gblRowInd = lclRowMap_.getGlobalElement (lclRowInd);
76 const GO gblColInd = gblRowInd;
77 const LO lclColInd = lclColMap_.getLocalElement (gblColInd);
79 if (lclColInd == Tpetra::Details::OrdinalTraits<LO>::invalid ()) {
80 diagOffsets_[lclRowInd] = STINV;
84 const LO numEnt = ptr_[lclRowInd+1] - ptr_[lclRowInd];
88 Kokkos::subview (ind_, Kokkos::make_pair (ptr_[lclRowInd],
90 using ::KokkosSparse::findRelOffset;
92 findRelOffset<LO, lcl_col_inds_type> (lclColInds, numEnt,
93 lclColInd, 0, isSorted_);
94 diagOffsets_[lclRowInd] = (diagOffset == numEnt) ? STINV :
95 static_cast<diag_offset_type
> (diagOffset);
GetGraphDiagOffsets(const diag_offsets_type &diagOffsets, const local_map_type &lclRowMap, const local_map_type &lclColMap, const row_offsets_type &ptr, const lcl_col_inds_type &ind, const bool isSorted)
Constructor; also runs the functor.