2.2.9.1. graph/Automorphism.h

2.2.9.1.1. Class graph::Graph::Aut

class graph::Graph::Aut

A class representing an automorphism of a Graph.

2.2.9.1.1.1. Synopsis

struct Graph::Aut {
    Aut(std::shared_ptr<Graph> g, LabelType lt, bool withStereo, std::size_t i);
    Vertex operator[](Vertex v) const;
    friend std::ostream &operator<<(std::ostream &s, const Aut &a);
private:
    std::shared_ptr<Graph> g;
    LabelType lt;
    bool withStereo;
    std::size_t i;
};

2.2.9.1.1.2. Details

Vertex operator[](Vertex v) const
Returns:the image of the given vertex under the permutation.

2.2.9.1.2. Class graph::Graph::AutGroup

class graph::Graph::AutGroup

A class representing the automorphism group of a Graph.

2.2.9.1.2.1. Synopsis

struct Graph::AutGroup {
    struct Gens {
        class iterator : public boost::iterator_facade<iterator, Aut, std::random_access_iterator_tag, Aut> {
            friend class Gens;
            iterator() = default;
            iterator(std::shared_ptr<Graph> g, LabelType lt, bool withStereo, std::size_t i);
        private:
            friend class boost::iterator_core_access;
            bool equal(const iterator &other) const;
            void increment();
            Aut dereference() const;
            std::size_t distance_to(const iterator &other) const;
            void advance(std::size_t n);
        private:
            std::shared_ptr<Graph> g;
            LabelType lt = LabelType::String;
            bool withStereo = false;
            std::size_t i = 0;
        };
        using const_iterator = iterator;
    private:
        friend class AutGroup;
        Gens(std::shared_ptr<Graph> g, LabelType lt, bool withStereo);
    public:
        iterator begin() const;
        iterator end() const;
        Aut operator[](std::size_t i) const;
        std::size_t size() const;
    private:
        std::shared_ptr<Graph> g;
        LabelType lt;
        bool withStereo;
    };
public:
    AutGroup(std::shared_ptr<Graph> g, LabelSettings labelSettings);
    Gens gens() const;
    friend std::ostream &operator<<(std::ostream &s, const AutGroup &a);
private:
    std::shared_ptr<Graph> g;
    LabelType lt;
    bool withStereo;
};

2.2.9.1.2.2. Details

AutGroup(std::shared_ptr<const Graph> g, LabelSettings labelSettings)
Gens gens() const
Returns:a range of the generators for the group.

2.2.9.1.3. Class graph::Graph::AutGroup::Gens

class graph::Graph::AutGroup::Gens

A random-access range of the generators for the automorphism group.