SliceStrategy.h
Go to the documentation of this file.
/* Frobby: Software for monomial ideal computations.
Copyright (C) 2007 Bjarke Hammersholt Roune (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/.
*/
#ifndef SLICE_STRATEGY_GUARD
#define SLICE_STRATEGY_GUARD
class Slice;
class Term;
class SliceEvent;
class Ideal;
class TaskEngine;
class SliceStrategy {
public:
virtual ~SliceStrategy();
virtual void run(const Ideal& ideal) = 0;
virtual bool processSlice(TaskEngine& tasks, unique_ptr<Slice> slice) = 0;
virtual void setUseIndependence(bool use) = 0;
virtual void setUseSimplification(bool use) = 0;
virtual bool getUseSimplification() const = 0;
virtual void freeSlice(unique_ptr<Slice> slice) = 0;
};
#endif
Ideal
Represents a monomial ideal with int exponents.
Definition Ideal.h:27
SliceStrategy
This class describes the interface of a strategy object for the Slice Algorithm.
Definition SliceStrategy.h:33
SliceStrategy::processSlice
virtual bool processSlice(TaskEngine &tasks, unique_ptr< Slice > slice)=0
Process the parameter slice.
SliceStrategy::setUseSimplification
virtual void setUseSimplification(bool use)=0
This method should only be called before calling run().
SliceStrategy::setUseIndependence
virtual void setUseIndependence(bool use)=0
This method should only be called before calling run().
SliceStrategy::getUseSimplification
virtual bool getUseSimplification() const =0
SliceStrategy::freeSlice
virtual void freeSlice(unique_ptr< Slice > slice)=0
It is allowed to delete returned slices directly, but it is better to use freeSlice.
SliceStrategy::~SliceStrategy
virtual ~SliceStrategy()
Definition SliceStrategy.cpp:20
SliceStrategy::run
virtual void run(const Ideal &ideal)=0
Run the Slice algorithm.
Slice
This class represents a slice, which is the central data structure of the Slice Algorithm.
Definition Slice.h:77
TaskEngine
TaskEngine handles a list of tasks that are to be carried out.
Definition TaskEngine.h:40
Term
Term represents a product of variables which does not include a coefficient.
Definition Term.h:49