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);
void print(FILE *file) const
virtual void setUseSimplification(bool use)
This method should only be called before calling run().
Represents a monomial ideal with int exponents.
DebugStrategy(SliceStrategy *strategy, FILE *out)
Debug information is written to out, and every call is delegated to strategy.
virtual void setUseIndependence(bool use)
This method should only be called before calling run().
virtual bool getUseSimplification() const
TaskEngine handles a list of tasks that are to be carried out.
virtual void run(const Ideal &ideal)
Run the Slice algorithm.
This class describes the interface of a strategy object for the Slice Algorithm.
bool processSlice(TaskEngine &tasks, auto_ptr< Slice > slice)
Process the parameter slice.
virtual void freeSlice(auto_ptr< Slice > slice)
It is allowed to delete returned slices directly, but it is better to use freeSlice.