indigoX
connectivity.hpp
Go to the documentation of this file.
1 #ifndef INDIGOX_ALGORITHM_GRAPH_CONNECTIVITY_HPP
2 #define INDIGOX_ALGORITHM_GRAPH_CONNECTIVITY_HPP
3 
4 #include "../../utils/fwd_declares.hpp"
5 
6 #include <cstdint>
7 #include <limits>
8 #include <vector>
9 
10 namespace indigox::algorithm {
11 
12  template <class V, class E, class S, class D, class VP, class EP,
13  class Container>
14  int64_t ConnectedComponents(graph::BaseGraph<V, E, S, D, VP, EP> &G,
15  Container &bits);
16 
23  template <class GraphType> class ConnectedSubgraphs {
24 
25  public:
26  ConnectedSubgraphs(GraphType &G, size_t min = 0,
27  size_t max = std::numeric_limits<size_t>::max());
29  bool operator()(GraphType &subgraph);
30 
31  private:
32  struct Impl;
33  std::unique_ptr<Impl> implementation;
34  };
35 
36  std::vector<std::vector<Atom>> OptimalChargeGroups(const Molecule &mol,
37  int32_t limit = 5);
38 
39 } // namespace indigox::algorithm
40 
41 #endif /* INDIGOX_ALGORITHM_GRAPH_CONNECTIVITY_HPP */
Definition: access.hpp:7
bool operator()(GraphType &subgraph)
Generate connected subgraphs in G.
Definition: connectivity.hpp:23
std::vector< std::vector< Atom > > OptimalChargeGroups(const Molecule &mol, int32_t limit=5)
Definition: molecule.hpp:15
ConnectedSubgraphs(GraphType &G, size_t min=0, size_t max=std::numeric_limits< size_t >::max())
int64_t ConnectedComponents(graph::BaseGraph< V, E, S, D, VP, EP > &G, Container &bits)