33#ifndef PARTITION_MATRIX_AUTOMORPHISM_SEARCH_H_
34#define PARTITION_MATRIX_AUTOMORPHISM_SEARCH_H_
36#include <permlib/search/partition/r_base.h>
37#include <permlib/search/partition/matrix_refinement1.h>
38#include <permlib/search/partition/refinement_family.h>
39#include <permlib/predicate/matrix_automorphism_predicate.h>
45template<
class BSGSIN,
class TRANSRET>
48 typedef typename RBase<BSGSIN,TRANSRET>::PERM PERM;
63 template<
class MATRIX,
class Iterator>
64 void construct(
const MATRIX& matrix, Iterator initialPartitionBegin, Iterator initialPartitionEnd);
70 template<
class MATRIX>
74template<
class BSGSIN,
class TRANSRET>
76 :
RBase<BSGSIN,TRANSRET>(bsgs, pruningLevelDCM)
79template<
class BSGSIN,
class TRANSRET>
80template<
class MATRIX,
class Iterator>
84 if (initialPartitionBegin != initialPartitionEnd) {
87 RBase<BSGSIN,TRANSRET>::m_partition2.intersect(initialPartitionBegin, initialPartitionEnd, 0);
93 matRef.
apply2(RBase<BSGSIN,TRANSRET>::m_partition2, empty);
BSGSIN m_bsgs
main BSGS to search in
Definition base_search.h:91
predicate for the automorphisms of a symmetric matrix
Definition matrix_automorphism_predicate.h:45
-refinements for symmetric matrix automorphisms
Definition refinement_family.h:156
void construct(const MATRIX &matrix)
initializes search
Definition matrix_automorphism_search.h:71
void construct(const MATRIX &matrix, Iterator initialPartitionBegin, Iterator initialPartitionEnd)
initializes search with inital partition
Definition matrix_automorphism_search.h:81
MatrixAutomorphismSearch(const BSGSIN &bsgs, unsigned int pruningLevelDCM)
constructor
Definition matrix_automorphism_search.h:75
concrete -refinement for symmetric matrix automorphisms
Definition matrix_refinement1.h:48
RBase(const BSGSIN &bsgs, unsigned int pruningLevelDCM, bool stopAfterFirstElement=false)
constructor
Definition r_base.h:109
void construct(SubgroupPredicate< PERM > *pred, RefinementFamily< PERM > *predRefinement)
constructs an R-base for given predicate and refinement family
Definition r_base.h:115
Partition m_partition
partition to base the backtrack tree on
Definition r_base.h:80
virtual unsigned int apply2(Partition &pi, const PERM &t) const
applies (right-)refinement to pi which is the image of the original partition this refinement was ini...
Definition refinement.h:156
bool initializeAndApply(Partition &pi)
applies (left-)refinement to partition and initializes refinement for future use in R-base
Definition refinement.h:136