Go to the documentation of this file.
26 bool exposeIndependenceParam,
27 bool supportBigattiAlgorithm):
28 _exposeBoundParam(exposeBoundParam),
29 _exposeIndependenceParam(exposeIndependenceParam),
33 "Print what the algorithm does at each step.",
38 "Print statistics on what the algorithm did.",
43 "Use the bound optimization to solve optimization problems faster\n"
44 "by eliminating non-improving slices.",
49 "Use the bound optimization to solve optimization problems faster by\n"
50 "simplifying slices through seeking to generate non-improving slices.\n"
51 "This requires turning elimination of non-improving slices on.",
56 "Perform independence splits when possible.",
57 exposeIndependenceParam),
61 "Perform simplification when possible.",
66 "Specifies that the input ideal is minimally generated by the given\n"
67 "generators. Turning this on can improve performance, but if it is not\n"
68 "true then Frobby may go into an infinite loop or produce incorrect results.",
73 "Sort the output, including the variables, to get a canonical\n"
74 "representation. This requires storing the entire output in memory, which\n"
75 "can increase run time modestly and increase memory consumption greatly.",
80 "Detect generic ideals as a base case of the Bigatti algorithm.",
85 "Widen selected pivots when performing pivot splits.\n"
86 "Bigatti et.al. algorithm only.",
91 "The split selection strategy to use. Slice options are maxlabel, minlabel,\n"
92 "varlabel, minimum, median, maximum, mingen, indep and gcd. Optimization\n"
93 "computations support the specialized strategy degree as well.",
98 if (exposeIndependenceParam)
108 if (supportBigattiAlgorithm) {
113 (
" Slice algorithm only.");
115 (
" Slice algorithm only.");
117 (
" Slice algorithm only.");
119 (
"\nSlice algorithm only.");
121 (
"\nThe impact for the Bigatti et.al. algorithm is much less than for the"
122 "\nSlice Algorithm since the Bigatti et.al. algorithm always has to\n"
123 "store the entire output in memory regardless of this option.");
125 (
"\nBigatti et.al. options are median, mostNGPure, mostNGGcd,\n"
126 "mostNGTight, typicalPure, typicalGcd, typicalTight, typicalNGPure,\n"
127 "typicalNGGcd, typicalNGTight, someNGPure, someNGGcd and someNGTight.");
157 auto_ptr<SplitStrategy>
160 if (split.get() == 0)
163 if (!allowLabel && split->isLabelSplit())
164 reportError(
"Label split strategy is not appropriate "
170 reportError(
"The split strategy degree is not appropriate "
176 reportError(
"The split strategy frob is not appropriate "
182 auto_ptr<BigattiPivotStrategy> split = BigattiPivotStrategy::createStrategy
185 if (split.get() == 0)
186 reportError(
"Unknown Bigatti et.al. pivot strategy \"" +
SliceParameters(bool exposeBoundParams=false, bool exposeIndependenceParam=true, bool supportBigattiAlgorithm=false)
Construct the parameters with default values.
BoolParameter _useBoundSimplification
BoolParameter _printDebug
BoolParameter _useSimplification
void validateSplitHilbert()
Checks that the Bigatti Et.al.
BoolParameter _useIndependence
bool getPrintStatistics() const
Returns the value of the stats option.
BoolParameter _useBigattiGeneric
bool getUseBoundSimplification() const
Get the value of the bound simplification option.
bool getPrintDebug() const
Returns the value of the debug option.
bool getUseBoundElimination() const
Get the value of the bound elimination option.
bool _useBoundElimination
BoolParameter _useBoundElimination
void validateSplit(bool allowLabel, bool allowDegree)
Checks that the slice split selection strategy specified is valid.
BoolParameter _printStatistics
void setSplit(const string &split)
Set the value of the option for choosing the split selection strategy.
bool getCanonical() const
Get the value of the canonical option.
void reportError(const string &errorMsg)
const string & getValue() const
void setUseIndependence(bool value)
Set the value of the independence split option.
const string & getSplit() const
Get the value of the split option.
void addParameter(Parameter *parameter)
void appendToDescription(const char *str)
bool _useBoundSimplification
BoolParameter _widenPivot
static auto_ptr< SplitStrategy > createStrategy(const string &prefix)
Returns the strategy whose name has the given prefix.