Frobby  0.9.5
SliceStrategy.h
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 #ifndef SLICE_STRATEGY_GUARD
18 #define SLICE_STRATEGY_GUARD
19 
20 class Slice;
21 class Term;
22 class SliceEvent;
23 class Ideal;
24 class TaskEngine;
25 
34  public:
35  virtual ~SliceStrategy();
36 
38  virtual void run(const Ideal& ideal) = 0;
39 
42  virtual bool processSlice(TaskEngine& tasks, auto_ptr<Slice> slice) = 0;
43 
45  virtual void setUseIndependence(bool use) = 0;
46 
48  virtual void setUseSimplification(bool use) = 0;
49 
50  virtual bool getUseSimplification() const = 0;
51 
57  virtual void freeSlice(auto_ptr<Slice> slice) = 0;
58 };
59 
60 #endif
Represents a monomial ideal with int exponents.
Definition: Ideal.h:27
This class describes the interface of a strategy object for the Slice Algorithm.
Definition: SliceStrategy.h:33
virtual void setUseSimplification(bool use)=0
This method should only be called before calling run().
virtual void freeSlice(auto_ptr< Slice > slice)=0
It is allowed to delete returned slices directly, but it is better to use freeSlice.
virtual void setUseIndependence(bool use)=0
This method should only be called before calling run().
virtual bool processSlice(TaskEngine &tasks, auto_ptr< Slice > slice)=0
Process the parameter slice.
virtual bool getUseSimplification() const =0
virtual ~SliceStrategy()
virtual void run(const Ideal &ideal)=0
Run the Slice algorithm.
This class represents a slice, which is the central data structure of the Slice Algorithm.
Definition: Slice.h:77
TaskEngine handles a list of tasks that are to be carried out.
Definition: TaskEngine.h:40
Term represents a product of variables which does not include a coefficient.
Definition: Term.h:49