BigattiFacade.cpp
Go to the documentation of this file.
/* Frobby: Software for monomial ideal computations.
Copyright (C) 2009 University of Aarhus
Contact Bjarke Hammersholt Roune for license information (www.broune.com)
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see http://www.gnu.org/licenses/.
*/
#include "stdinc.h"
#include "BigattiFacade.h"
#include "BigattiHilbertAlgorithm.h"
#include "BigattiParams.h"
#include "BigattiPivotStrategy.h"
BigattiFacade::BigattiFacade(const BigattiParams& params):
Facade(params.getPrintActions()),
_pivot(BigattiPivotStrategy::createStrategy
(params.getPivot(), params.getWidenPivot())),
_params(params) {
_common.readIdealAndSetPolyOutput(params);
}
BigattiFacade::~BigattiFacade() {
// Destructor defined so unique_ptr<T> in the header does not need
// definition of T.
}
void BigattiFacade::computeMultigradedHilbertSeries() {
beginAction("Computing multigraded Hilbert-Poincare series.");
BigattiHilbertAlgorithm alg(_common.takeIdeal(),
_common.getTranslator(),
_params,
std::move(_pivot),
_common.getPolyConsumer());
alg.setComputeUnivariate(false);
alg.run();
endAction();
}
void BigattiFacade::computeUnivariateHilbertSeries() {
beginAction("Computing univariate Hilbert-Poincare series");
BigattiHilbertAlgorithm alg(_common.takeIdeal(),
_common.getTranslator(),
_params,
std::move(_pivot),
_common.getPolyConsumer());
alg.setComputeUnivariate(true);
alg.run();
endAction();
}
BigattiFacade.h
BigattiHilbertAlgorithm.h
BigattiParams.h
BigattiPivotStrategy.h
BigattiFacade::computeMultigradedHilbertSeries
void computeMultigradedHilbertSeries()
Computes the numerator of the multigraded Hilbert-Poincare series with no cancellation of common term...
Definition BigattiFacade.cpp:38
BigattiFacade::~BigattiFacade
~BigattiFacade()
Definition BigattiFacade.cpp:33
BigattiFacade::_params
BigattiParams _params
Definition BigattiFacade.h:49
BigattiFacade::computeUnivariateHilbertSeries
void computeUnivariateHilbertSeries()
Computes the numerator of the univariate Hilbert-Poincare series with no cancellation of common terms...
Definition BigattiFacade.cpp:52
BigattiFacade::_pivot
unique_ptr< BigattiPivotStrategy > _pivot
Definition BigattiFacade.h:48
BigattiFacade::BigattiFacade
BigattiFacade(const BigattiParams &params)
Definition BigattiFacade.cpp:25
BigattiFacade::_common
CommonParamsHelper _common
Definition BigattiFacade.h:50
BigattiHilbertAlgorithm
Definition BigattiHilbertAlgorithm.h:32
BigattiHilbertAlgorithm::setComputeUnivariate
void setComputeUnivariate(bool value)
Definition BigattiHilbertAlgorithm.cpp:50
BigattiHilbertAlgorithm::run
void run()
Definition BigattiHilbertAlgorithm.cpp:54
BigattiParams
Definition BigattiParams.h:25
BigattiPivotStrategy
A BigattiPivotStrategy is an implementation of a pivot selection strategy for the Hilbert series algo...
Definition BigattiPivotStrategy.h:28
Facade::beginAction
void beginAction(const char *message)
Prints message to standard error if printing is turned on, and records the time when the action start...
Definition Facade.cpp:38
Facade::endAction
void endAction()
Prints to standard error the time since the last call to beginAction.
Definition Facade.cpp:51
Facade::Facade
Facade(bool printActions)
Constructs a facade that prints out what it is doing if printActions is true.
Definition Facade.cpp:20
stdinc.h
This header file includes common definitions and is included as the first line of code in every imple...