50 #ifndef _ZOLTAN2_ORDERINGSOLUTION_HPP_ 51 #define _ZOLTAN2_ORDERINGSOLUTION_HPP_ 70 template <
typename lno_t,
typename gno_t>
179 std::cerr <<
"No inverse!" << std::endl;
195 std::cerr <<
"No perm!" << std::endl;
278 return const_cast<ArrayRCP<lno_t>&
> (
invperm_);
280 return const_cast<ArrayRCP<lno_t>&
> (
perm_);
309 return perm_.getRawPtr();
lno_t * getPermutationView(bool inverse=false) const
Get pointer to (local) permutation. If inverse = true, return inverse permutation. By default, perm[i] is where new index i can be found in the old ordering. When inverse==true, perm[i] is where old index i can be found in the new ordering.
size_t getPermutationSize() const
Get (local) size of permutation.
ArrayRCP< lno_t > & getPermutationRCPConst(bool inverse=false) const
Get (local) permuted GIDs by const RCP.
lno_t getNumSeparatorBlocks() const
Get number of separator column blocks.
Defines the Solution base class.
lno_t * getSeparatorTreeView() const
Get pointer to (local) separator tree.
const ArrayRCP< lno_t > & getSeparatorRangeRCP() const
Get (local) seperator range by RCP.
bool haveSeparatorTree() const
Do we have the seperator tree?
void setHavePerm(bool status)
Set havePerm (intended for ordering algorithms only)
const ArrayRCP< lno_t > & getSeparatorTreeRCP() const
Get (local) seperator tree by RCP.
Just a placeholder for now.
void computeInverse()
Compute inverse permutation.
ArrayRCP< lno_t > separatorTree_
void setNumSeparatorBlocks(lno_t nblks)
Set number of separator column blocks.
lno_t & NumSeparatorBlocks()
Get reference to (local) separator column block.
bool havePerm() const
Do we have the direct permutation?
OrderingSolution(size_t perm_size)
Constructor allocates memory for the solution.
bool getVertexSeparator(lno_t &numBlocks, lno_t *range, lno_t *tree) const
return vertex separator variables by reference.
lno_t * getSeparatorRangeView() const
Get pointer to (local) separator range.
void computePerm()
Compute direct permutation from inverse.
ArrayRCP< lno_t > & getSeparatorRangeRCPConst() const
Get (local) seperator range by const RCP.
ArrayRCP< lno_t > invperm_
ArrayRCP< lno_t > & getSeparatorTreeRCPConst() const
Get (local) seperator tree by const RCP.
void setHaveSeparatorRange(bool status)
Set haveSeparatorRange (intended for ordering algorithms only)
bool haveSeparatorRange() const
Do we have the seperator range?
bool haveSeparators() const
Do we have the seperators?
void setHaveSeparator(bool status)
set all separator flags.
Gathering definitions used in software development.
lno_t separatorColBlocks_
void setHaveInverse(bool status)
Set haveInverse (intended for ordering algorithms only)
bool haveInverse() const
Do we have the inverse permutation?
The class containing ordering solutions.
const ArrayRCP< lno_t > & getPermutationRCP(bool inverse=false) const
Get (local) permuted GIDs by RCP.
ArrayRCP< lno_t > separatorRange_
void setHaveSeparatorTree(bool status)
Set haveSeparatorTree (intended for ordering algorithms only)