Frobby
0.9.5
|
A SplitStrategy is an implementation of a split selection strategy for the Slice Algorithm. More...
#include <SplitStrategy.h>
Public Member Functions | |
virtual | ~SplitStrategy () |
virtual void | getPivot (Term &pivot, Slice &slice) const =0 |
Sets pivot to the pivot of a pivot split on slice. More... | |
virtual void | getPivot (Term &pivot, Slice &slice, const TermGrader &grader) const =0 |
Sets pivot to the pivot of a pivot split on slice. More... | |
virtual size_t | getLabelSplitVariable (const Slice &slice) const =0 |
Returns the variable to perform a label split on. More... | |
virtual bool | isPivotSplit () const =0 |
If returns true, only call getPivot. More... | |
virtual bool | isLabelSplit () const =0 |
If returns true, only call getLabelSplitVariable. More... | |
virtual const char * | getName () const =0 |
Returns the name of the strategy. More... | |
Static Public Member Functions | |
static auto_ptr< SplitStrategy > | createStrategy (const string &prefix) |
Returns the strategy whose name has the given prefix. More... | |
Protected Member Functions | |
SplitStrategy () | |
SplitStrategy (const SplitStrategy &) | |
SplitStrategy & | operator= (const SplitStrategy &) |
bool | operator== (const SplitStrategy &) |
A SplitStrategy is an implementation of a split selection strategy for the Slice Algorithm.
Specifically, it makes a decision about what kind of splits to perform, and how to make any choices involved in performing such a split.
Definition at line 30 of file SplitStrategy.h.
|
virtual |
Definition at line 31 of file SplitStrategy.cpp.
|
protected |
Definition at line 28 of file SplitStrategy.cpp.
|
protected |
|
static |
Returns the strategy whose name has the given prefix.
This is the only way to create a SplitStrategy.
Definition at line 497 of file SplitStrategy.cpp.
|
pure virtual |
Returns the variable to perform a label split on.
This method must only be called if isLabelSplit() returns true.
Implemented in MinLabelSplit, VarLabelSplit, MaxLabelSplit, and SplitStrategyCommon.
|
pure virtual |
Returns the name of the strategy.
Implemented in DeprecatedFrobeniusSplit, DegreeSplit, MinGenSplit, GcdSplit, IndependencePivotSplit, MaximumSplit, MedianSplit, MinimumSplit, MinLabelSplit, VarLabelSplit, and MaxLabelSplit.
Sets pivot to the pivot of a pivot split on slice.
The slice is not changed mathematically, but e.g. the generators may be permuted.
This method must only be called if isPivotSplit() returns true.
Implemented in DegreeSplit, MinGenSplit, GcdSplit, IndependencePivotSplit, MaximumSplit, MedianSplit, MinimumSplit, and SplitStrategyCommon.
|
pure virtual |
Sets pivot to the pivot of a pivot split on slice.
Some pivot selection strategies make use of a grading. The slice is not changed mathematically, but e.g. the generators may be permuted.
This method must only be called if isPivotSplit() returns true.
Implemented in DegreeSplit, and SplitStrategyCommon.
|
pure virtual |
If returns true, only call getLabelSplitVariable.
Implemented in LabelSplit, and SplitStrategyCommon.
|
pure virtual |
If returns true, only call getPivot.
Implemented in PivotSplit, and SplitStrategyCommon.
|
protected |
|
protected |