seams-core v2.6.0
libyodaLib, the C++ engine of d-SEAMS
☾
Toggle main menu visibility
Loading...
Searching...
No Matches
cage_canon.hpp
Go to the documentation of this file.
1
#ifndef SEAMS_CAGE_CANON_H_
2
#define SEAMS_CAGE_CANON_H_
3
4
#include <string>
5
#include <utility>
6
#include <vector>
7
8
// Nauty (McKay and Piperno, J. Symbolic Comput. 60, 94 (2014);
9
// 10.1016/j.jsc.2013.09.003) produces a canonical adjacency certificate
10
// for the undirected graph of a ring set. findHC/findDDC stay the
11
// enumerators; this is the label-independent signature.
12
13
namespace
cage
{
14
15
bool
nautyAvailable
();
16
17
// Hex encoding of the canonical adjacency matrix. Empty if nauty is
18
// off or the ring set has no vertices.
19
std::string
canonicalCertificate
(
const
std::vector<std::vector<int>> &rings);
20
21
// True when the ring graph is isomorphic to the hexagonal prism (HC).
22
bool
isHexagonalPrism
(
const
std::vector<std::vector<int>> &rings);
23
24
bool
sameCertificate
(
const
std::vector<std::vector<int>> &a,
25
const
std::vector<std::vector<int>> &b);
26
27
// Certificate of an arbitrary graph on n local vertices given by its edge
28
// list, with vertex `root` in its own colour cell so that rooted
29
// neighbourhoods with different centres get different certificates
30
// (root < 0 colours nothing). Empty if nauty is off, n is zero, or n
31
// exceeds the dense-graph limit.
32
std::string
canonicalCertificateRooted
(
int
n,
33
const
std::vector<std::pair<int, int>> &edges,
34
int
root);
35
36
// The same with a colour per vertex (an integer class such as the atom
37
// type): vertices of different colours never map onto each other, and the
38
// root still sits in a cell of its own. `colours` may be empty.
39
std::string
canonicalCertificateColoured
(
int
n,
40
const
std::vector<std::pair<int, int>> &edges,
41
const
std::vector<int> &colours,
int
root);
42
43
}
// namespace cage
44
45
#endif
cage
Functions for topological network criteria cage types.
Definition
cage.hpp:47
cage::canonicalCertificateRooted
std::string canonicalCertificateRooted(int n, const std::vector< std::pair< int, int > > &edges, int root)
cage::isHexagonalPrism
bool isHexagonalPrism(const std::vector< std::vector< int > > &rings)
cage::canonicalCertificate
std::string canonicalCertificate(const std::vector< std::vector< int > > &rings)
cage::canonicalCertificateColoured
std::string canonicalCertificateColoured(int n, const std::vector< std::pair< int, int > > &edges, const std::vector< int > &colours, int root)
cage::sameCertificate
bool sameCertificate(const std::vector< std::vector< int > > &a, const std::vector< std::vector< int > > &b)
cage::nautyAvailable
bool nautyAvailable()
src
include
internal
cage_canon.hpp
Generated by
1.17.0
Generated by
Doxygen 1.17.0
Analytics by
Antics
provided by
TurtleTech ehf