dejavu
Fast probabilistic symmetry detection.
Loading...
Searching...
No Matches
dejavu::groups::orbit Class Reference

Orbit partition. More...

#include <groups.h>

Public Member Functions

int find_orbit (const int v)
 
int orbit_size (const int v)
 
dej_nodiscard bool represents_orbit (const int v) const
 
void combine_orbits (const int v1, const int v2)
 
bool are_in_same_orbit (const int v1, const int v2)
 
void reset ()
 
void add_automorphism_to_orbit (const int *p, const int nsupp, const int *supp)
 
void add_automorphism_to_orbit (groups::automorphism_workspace &aut)
 
void initialize (int domain_size)
 
 orbit (int domain_size)
 
 orbit ()=default
 
 orbit (const orbit &other)
 
bool operator== (orbit &other_orbit)
 

Detailed Description

Orbit partition.

Keeps track of an orbit partition, and provides tools to manipulate the orbits within.

Definition at line 507 of file groups.h.

Constructor & Destructor Documentation

◆ orbit() [1/3]

dejavu::groups::orbit::orbit ( int  domain_size)
inlineexplicit

Initializes orbit with the given domain size.

Parameters
domain_sizesize of the underlying domain

Definition at line 657 of file groups.h.

◆ orbit() [2/3]

dejavu::groups::orbit::orbit ( )
default

◆ orbit() [3/3]

dejavu::groups::orbit::orbit ( const orbit other)
inline

Definition at line 662 of file groups.h.

Member Function Documentation

◆ add_automorphism_to_orbit() [1/2]

void dejavu::groups::orbit::add_automorphism_to_orbit ( const int *  p,
const int  nsupp,
const int *  supp 
)
inline

Applies an automorphism to the orbit structure.

Parameters
autAutomorphism workspace which is applied.

Definition at line 613 of file groups.h.

◆ add_automorphism_to_orbit() [2/2]

void dejavu::groups::orbit::add_automorphism_to_orbit ( groups::automorphism_workspace aut)
inline

Applies an automorphism to the orbit structure.

Parameters
autAutomorphism workspace which is applied.

Definition at line 624 of file groups.h.

◆ are_in_same_orbit()

bool dejavu::groups::orbit::are_in_same_orbit ( const int  v1,
const int  v2 
)
inline

Checks whether two given vertices are in the same orbit

Parameters
v1The first vertex.
v2The second vertex.
Returns
Whether v1 and v2 are in the same orbit.

Definition at line 586 of file groups.h.

◆ combine_orbits()

void dejavu::groups::orbit::combine_orbits ( const int  v1,
const int  v2 
)
inline

Combines the orbits of two given vertices.

Parameters
v1The first vertex.
v2The second vertex.

Definition at line 560 of file groups.h.

◆ find_orbit()

int dejavu::groups::orbit::find_orbit ( const int  v)
inline

Retrieve the orbit of the given vertex.

Parameters
vVertex of the specified domain.
Returns
The orbit of v.

Definition at line 519 of file groups.h.

◆ initialize()

void dejavu::groups::orbit::initialize ( int  domain_size)
inline

Initializes the orbit structure with the given size.

Parameters
domain_sizesize of the underlying domain

Definition at line 638 of file groups.h.

◆ operator==()

bool dejavu::groups::orbit::operator== ( orbit other_orbit)
inline

Definition at line 670 of file groups.h.

◆ orbit_size()

int dejavu::groups::orbit::orbit_size ( const int  v)
inline

Returns the size of an orbit.

Parameters
vVertex of the specified domain.
Returns
Size of the orbit of v.

Definition at line 538 of file groups.h.

◆ represents_orbit()

dej_nodiscard bool dejavu::groups::orbit::represents_orbit ( const int  v) const
inline

Every orbit has precisely one representative. This function enables to test this.

Parameters
vVertex of the specified domain.
Returns
Whether v is the representative of the orbit of v.

Definition at line 550 of file groups.h.

◆ reset()

void dejavu::groups::orbit::reset ( )
inline

Resets the datastructure to the trivial orbit partition. Takes time O(n) where n is the current domain size.

Definition at line 601 of file groups.h.


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