graph_symmetry/core/
mod.rs

1// Copyright 2021 Chiral Ltd.
2// Licensed under the Apache-2.0 license (https://opensource.org/licenses/Apache-2.0)
3// This file may not be copied, modified, or distributed
4// except according to those terms.
5
6mod config;
7pub mod orbit_ops;
8pub mod graph;
9pub mod graph_ops;
10pub mod cycle_ops;
11pub mod givp;
12pub mod cnap;
13pub mod reduce;
14
15pub fn symmetry_perception_by_graph_reduction<T: graph::VertexExtendableHash>(
16    rg: &mut reduce::ReducibleGraph<T::VertexType>,
17    orbits_symmetry: &mut Vec<orbit_ops::Orbit>,
18    get_reduced_edges: fn(&Vec<T::VertexType>, &Vec<usize>) -> Vec<(usize, usize, usize)>,
19    get_local_symmetric_orbits: fn(&graph::VertexVec<T::VertexType>, &mut Vec<orbit_ops::Orbit>, &mut Vec<orbit_ops::Orbit>),
20    custom_maker: usize
21) {
22    let mut mut_custom_maker = custom_maker;
23    reduce::run::<T>(&mut mut_custom_maker, rg, orbits_symmetry, get_reduced_edges, get_local_symmetric_orbits);
24}