Struct TensorNetworkV3::Graph¶
Defined in File v3.hpp
Nested Relationships¶
This struct is a nested type of Class TensorNetworkV3.
Struct Documentation¶
-
struct Graph
Public Types
-
using VertexColor = std::uint32_t
The type used to encode the color of a vertex. The restriction of this being as 32-bit integer comes from how BLISS is trying to convert these into RGB values.
Public Functions
-
Graph() = default
-
int automorphism_phase(const unsigned int *aut, const container::set<Index, Index::FullLabelCompare> *named_indices = nullptr) const
Computes the phase that an automorphism of this graph incurs: an automorphism maps the network onto itself, up to the signs of the permutations it induces on the slots of antisymmetric bra/ket bundles. A network with an automorphism of phase -1 is identically zero.
- Parameters:
aut – an automorphism of this graph
named_indices – indices that
autmust fix, in addition to the external indices of the network; may be null
- Returns:
the phase (+1 or -1) of
aut, or 0 ifautmoves a tensor, an aux slot, a protoindex bundle, an external index or one ofnamed_indices; such automorphisms are not scored
-
std::size_t vertex_to_index_idx(std::size_t vertex) const
-
std::optional<std::size_t> vertex_to_tensor_idx(std::size_t vertex) const
maps vertex ordinal to tensor cluster ordinal
Note
usable as bliss::Graph::DotOptions::vertex_to_subgraph
Public Members
-
std::unique_ptr<bliss::Graph> bliss_graph
-
std::vector<std::wstring> vertex_labels
-
std::vector<std::optional<std::wstring>> vertex_xlabels
-
std::vector<std::optional<std::wstring>> vertex_texlabels
-
std::vector<VertexColor> vertex_colors
-
std::vector<VertexType> vertex_types
-
std::vector<Index> vertex_indices
the Index represented by each vertex of type VertexType::Index; a null Index for the other vertices
-
std::vector<bool> vertex_fixed_for_phase
whether each vertex is one that automorphism_phase() requires an automorphism to fix: a tensor core, an aux slot, a protoindex bundle, or an external index of the network
-
std::vector<container::svector<std::size_t, 4>> antisymm_bundles
the slot vertices of each bra and each ket bundle of an antisymmetric tensor that hold an index, in slot order; bundles
2kand2k+1are the bra and the ket of the same tensor
-
std::vector<std::pair<std::size_t, std::size_t>> antisymm_slots
for each vertex in antisymm_bundles, its bundle and its position in that bundle;
{npos, npos}for the other vertices
-
using VertexColor = std::uint32_t