Frobby 0.9.5
IrreducibleDecomAction.cpp
Go to the documentation of this file.
1/* Frobby: Software for monomial ideal computations.
2 Copyright (C) 2007 Bjarke Hammersholt Roune (www.broune.com)
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program. If not, see http://www.gnu.org/licenses/.
16*/
17#include "stdinc.h"
19
20#include "SliceFacade.h"
21#include "SliceParams.h"
22#include "DataType.h"
23
25 Action
26(staticGetName(),
27 "Compute the irreducible decomposition of the input ideal.",
28 "Compute the irredundant irreducible decomposition of the input monomial "
29 "ideal.\n\n"
30 "The decomposition is computed using the Slice Algorithm. This algorithm is\n"
31 "described in the paper `The Slice Algorithm For Irreducible Decomposition "
32 "of\n"
33 "Monomial Ideals', which is available at www.broune.com .",
34 false),
35
36 _encode("encode",
37 "Encode the decomposition as monomials generating an ideal.",
38 false),
39
40 _io(DataType::getMonomialIdealType(), DataType::getMonomialIdealType()) {
41}
42
43void IrreducibleDecomAction::obtainParameters(vector<Parameter*>& parameters) {
44 _io.obtainParameters(parameters);
45 parameters.push_back(&_encode);
47 Action::obtainParameters(parameters);
48}
49
51 SliceParams params(_params);
52 validateSplit(params, true, false);
53 const DataType& output = _encode ?
56 SliceFacade facade(params, output);
58}
59
61 return "irrdecom";
62}
void validateSplit(const SliceParams &params, bool allowLabel, bool allowDegree)
CliParams _params
Definition Action.h:59
virtual void obtainParameters(vector< Parameter * > &parameters)
Definition Action.cpp:133
The intention of this class is to describe the different kinds of mathematical structures that Frobby...
Definition DataType.h:29
static const DataType & getMonomialIdealListType()
Returns the one and only instance for monomial ideal lists.
Definition DataType.cpp:54
static const DataType & getMonomialIdealType()
Returns the one and only instance for monomial ideals.
Definition DataType.cpp:45
virtual void obtainParameters(vector< Parameter * > &parameters)
static const char * staticGetName()
void obtainParameters(vector< Parameter * > &parameters)
A facade for operations on monomial ideals using the Slice Algorithm.
Definition SliceFacade.h:44
void computeIrreducibleDecomposition(bool encode)
Compute the unique irredundant set of irreducible ideals whose intersection equals ideal.
This header file includes common definitions and is included as the first line of code in every imple...