12 #ifndef DEGREE_PATTERN_H 13 #define DEGREE_PATTERN_H 41 Pattern(
int n): m_refCounter(1), m_length(n), m_pattern( new int[n]) {};
164 if ((*
this)[
i] ==
x)
return i + 1;
DegreePattern provides a functionality to create, intersect and refine degree patterns.
int operator[](const int index) const
operator []
int getLength() const
getter
Pattern()
default constructor
some useful template functions.
void init(int n)
initialise a DegreePattern
~DegreePattern()
destructor
int find(const int x) const
find an element x
int * getPattern() const
getter
void intersect(const DegreePattern °Pat)
intersect two degree patterns
DegreePattern(const DegreePattern °Pat)
copy constructor
DegreePattern()
default constructor
Operations in GF, where GF is a finite field of size less than 2^16 represented by a root of Conway p...
int m_refCounter
reference counter
void release()
clear m_data
Iterators for CanonicalForm's.
static int index(p_Length length, p_Ord ord)
void refine()
Refine a degree pattern. Assumes that (*this)[0]:= d is the degree of the poly to be factored...
DegreePattern & operator=(const DegreePattern °Pat)
assignment
#define ASSERT(expression, message)
int * m_pattern
some array containing the degree pattern
struct DegreePattern::Pattern * m_data
Pattern(int n)
construct a Pattern from an int
int m_length
length of m_pattern