31 "Compute Frobenius number using a Grobner basis algorithm.",
32 "Compute the Frobenius number of the passed-in Frobenius instance. This " 34 "must be preceded in the input by a deg-rev-lex lattice ideal Grobner basis " 36 "produced by the program 4ti2.\n\n" 37 "The algorithm for this uses irreducible decomposition to compute the " 39 "number, which is why this action accepts parameters related to that. See " 41 "paper \"Solving Thousand Digit Frobenius Problems Using Grobner Bases\"\n" 42 "at www.broune.com for more details.",
45 _sliceParams(true, false),
48 "Display the vector that achieves the optimal value.",
62 (
"The action frobgrob is DEPRECATED, and will be removed in a future " 63 "release of Frobby. Use the action optimize with options " 64 "-chopFirstAndSubtract and -maxStandard instead to get the same effect.");
69 vector<mpz_class> instance;
77 vector<mpz_class> shiftedDegrees(instance.begin() + 1, instance.end());
78 vector<mpz_class> bigVector;
89 bigVector = maxSolution[0];
91 mpz_class frobeniusNumber = -instance[0];
92 for (
size_t i = 1; i < instance.size(); ++i)
93 frobeniusNumber += bigVector[i - 1] * instance[i];
97 for (
size_t i = 0; i < bigVector.size(); ++i)
98 gmp_fprintf(stdout,
", %Zd", bigVector[i].get_mpz_t());
102 gmp_fprintf(stdout,
"%Zd\n", frobeniusNumber.get_mpz_t());
SliceParameters _sliceParams
static const char * staticGetName()
auto_ptr< BigIdeal > releaseIdeal()
BoolParameter _printActions
virtual void obtainParameters(vector< Parameter *> ¶meters)
virtual bool displayAction() const
Returns whether this action should be shown to the user by the help action.
virtual void obtainParameters(vector< Parameter *> ¶meters)
This file contains functions for printing strings to standard error.
bool solveStandardProgram(const vector< mpz_class > &grading, mpz_class &value, bool reportAllSolutions)
Solve an optimization program over maximal standard monomials.
void displayNote(const string &msg)
Display msg to standard error in a way that indicates that this is something that the user should tak...
size_t getGeneratorCount() const
This class offers an input interface which is more convenient and for some purposes more efficient th...
A facade for operations on monomial ideals using the Slice Algorithm.
void setSplit(const string &split)
Set the value of the option for choosing the split selection strategy.
void readFrobeniusInstanceWithGrobnerBasis(Scanner &in, BigIdeal &ideal, vector< mpz_class > &instance)
BigTermRecorder records all the terms it consumes into an ideal.
A facade for input and output of mathematical objects.
BoolParameter _displaySolution
void obtainParameters(vector< Parameter *> ¶meters)
void expectEOF()
Require that there is no more input.
void validateSplit(const SliceParams ¶ms, bool allowLabel, bool allowDegree)