26 fputs(
"DEBUG: Starting slice computation.\n",
_out);
33 fputs(
"DEBUG: Starting Slice Algorithm. Input ideal is:\n", _out);
36 _strategy->run(ideal);
38 fputs(
"DEBUG: Slice computation done.\n", _out);
42 fputs(
"DEBUG: Processing slice.\n", _out);
44 bool wasBaseCase = _strategy->processSlice(tasks, slice);
46 fputs(
"DEBUG: Determined that slice is base case.\n", _out);
48 fputs(
"DEBUG: Determined that slice is not base case.\n", _out);
54 fputs(
"DEBUG: Turning on independence splits.", _out);
56 fputs(
"DEBUG: Turning off independence splits.", _out);
57 _strategy->setUseIndependence(use);
62 fputs(
"DEBUG: Turning on simplification.", _out);
64 fputs(
"DEBUG: Turning off simplification.", _out);
65 _strategy->setUseSimplification(use);
69 return _strategy->getUseSimplification();
73 fputs(
"DEBUG: Freeing slice.\n", _out);
74 _strategy->freeSlice(slice);
virtual void run(const Ideal &ideal)
Run the Slice algorithm.
virtual void freeSlice(auto_ptr< Slice > slice)
It is allowed to delete returned slices directly, but it is better to use freeSlice.
bool processSlice(TaskEngine &tasks, auto_ptr< Slice > slice)
Process the parameter slice.
virtual void setUseIndependence(bool use)
This method should only be called before calling run().
virtual bool getUseSimplification() const
DebugStrategy(SliceStrategy *strategy, FILE *out)
Debug information is written to out, and every call is delegated to strategy.
virtual void setUseSimplification(bool use)
This method should only be called before calling run().
Represents a monomial ideal with int exponents.
void print(FILE *file) const
This class describes the interface of a strategy object for the Slice Algorithm.
TaskEngine handles a list of tasks that are to be carried out.