Eigen::internal::simpl_chol_helper< Scalar, StorageIndex >::DisjointSet Struct Reference

#include <SimplicialCholesky_impl.h>

Public Member Functions

 DisjointSet (StorageIndex *set, StorageIndex size)
 
StorageIndex find (StorageIndex u) const
 
void compress (StorageIndex u, StorageIndex v)
 

Public Attributes

StorageIndex * m_set
 

Constructor & Destructor Documentation

◆ DisjointSet()

template<typename Scalar , typename StorageIndex >
Eigen::internal::simpl_chol_helper< Scalar, StorageIndex >::DisjointSet::DisjointSet ( StorageIndex *  set,
StorageIndex  size 
)
inline
73 : m_set(set) { std::iota(set, set + size, 0); }
Scalar Scalar int size
Definition: benchVecAdd.cpp:17
void set(Container &c, Position position, const Value &value)
Definition: stdlist_overload.cpp:36
StorageIndex * m_set
Definition: SimplicialCholesky_impl.h:72

References set(), and size.

Member Function Documentation

◆ compress()

template<typename Scalar , typename StorageIndex >
void Eigen::internal::simpl_chol_helper< Scalar, StorageIndex >::DisjointSet::compress ( StorageIndex  u,
StorageIndex  v 
)
inline
84  {
85  eigen_assert(u != kEmpty);
86  eigen_assert(v != kEmpty);
87  while (m_set[u] != v) {
88  StorageIndex next = m_set[u];
89  m_set[u] = v;
90  u = next;
91  }
92  };
Array< int, Dynamic, 1 > v
Definition: Array_initializer_list_vector_cxx11.cpp:1
#define eigen_assert(x)
Definition: Macros.h:910
static constexpr StorageIndex kEmpty
Definition: SimplicialCholesky_impl.h:35

References eigen_assert, Eigen::internal::simpl_chol_helper< Scalar, StorageIndex >::kEmpty, Eigen::internal::simpl_chol_helper< Scalar, StorageIndex >::DisjointSet::m_set, and v.

Referenced by Eigen::internal::simpl_chol_helper< Scalar, StorageIndex >::calc_etree().

◆ find()

template<typename Scalar , typename StorageIndex >
StorageIndex Eigen::internal::simpl_chol_helper< Scalar, StorageIndex >::DisjointSet::find ( StorageIndex  u) const
inline
75  {
76  eigen_assert(u != kEmpty);
77  while (m_set[u] != u) {
78  // manually unroll the loop by a factor of 2 to improve performance
79  u = m_set[m_set[u]];
80  }
81  return u;
82  }

References eigen_assert, Eigen::internal::simpl_chol_helper< Scalar, StorageIndex >::kEmpty, and Eigen::internal::simpl_chol_helper< Scalar, StorageIndex >::DisjointSet::m_set.

Referenced by Eigen::internal::simpl_chol_helper< Scalar, StorageIndex >::calc_etree().

Member Data Documentation

◆ m_set


The documentation for this struct was generated from the following file: