Loading...
Searching...
No Matches
orbit.hh
#pragma once
/*
Copyright (c) 2003-2021 Tommi Junttila
Released under the GNU Lesser General Public License version 3.
This file is part of bliss.
bliss is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, version 3 of the License.
bliss is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with bliss. If not, see <http://www.gnu.org/licenses/>.
*/
namespace bliss {
class Orbit
{
class OrbitEntry
{
public:
unsigned int element;
OrbitEntry *next;
unsigned int size;
};
OrbitEntry *orbits;
OrbitEntry **in_orbit;
unsigned int nof_elements;
unsigned int _nof_orbits;
void merge_orbits(OrbitEntry *o1, OrbitEntry *o2);
public:
Orbit();
~Orbit();
void init(const unsigned int N);
void reset();
void merge_orbits(unsigned int e1, unsigned int e2);
bool is_minimal_representative(unsigned int e) const;
unsigned int get_minimal_representative(unsigned int e) const;
unsigned int orbit_size(unsigned int e) const;
unsigned int nof_orbits() const {return _nof_orbits; }
};
} // namespace bliss
bliss::Orbit::reset
void reset()
Definition orbit.cc:72
bliss::Orbit::nof_orbits
unsigned int nof_orbits() const
Definition orbit.hh:106
bliss::Orbit::Orbit
Orbit()
Definition orbit.cc:26
bliss::Orbit::init
void init(const unsigned int N)
Definition orbit.cc:59
bliss::Orbit::orbit_size
unsigned int orbit_size(unsigned int e) const
Definition orbit.cc:145
bliss::Orbit::get_minimal_representative
unsigned int get_minimal_representative(unsigned int e) const
Definition orbit.cc:136
bliss::Orbit::is_minimal_representative
bool is_minimal_representative(unsigned int e) const
Definition orbit.cc:130
bliss
Definition abstractgraph.cc:35