Frobby  0.9.5
Public Member Functions | Private Member Functions | Private Attributes | List of all members
HilbertStrategy Class Reference

#include <HilbertStrategy.h>

Inheritance diagram for HilbertStrategy:
SliceStrategyCommon SliceStrategy

Public Member Functions

 HilbertStrategy (CoefTermConsumer *consumer, const SplitStrategy *splitStrategy)
 
virtual void run (const Ideal &ideal)
 Run the Slice algorithm. More...
 
virtual bool processSlice (TaskEngine &tasks, auto_ptr< Slice > slice)
 Process the parameter slice. More...
 
void freeConsumer (auto_ptr< HilbertIndependenceConsumer > consumer)
 
- Public Member Functions inherited from SliceStrategyCommon
 SliceStrategyCommon (const SplitStrategy *splitStrategy)
 
virtual ~SliceStrategyCommon ()
 
virtual void freeSlice (auto_ptr< Slice > slice)
 It is allowed to delete returned slices directly, but it is better to use freeSlice. More...
 
virtual void setUseIndependence (bool use)
 This method should only be called before calling run(). More...
 
virtual void setUseSimplification (bool use)
 This method should only be called before calling run(). More...
 
- Public Member Functions inherited from SliceStrategy
virtual ~SliceStrategy ()
 

Private Member Functions

auto_ptr< HilbertIndependenceConsumernewConsumer ()
 
auto_ptr< HilbertSlicenewHilbertSlice ()
 
virtual auto_ptr< SliceallocateSlice ()
 Directly allocate a slice of the correct type using new. More...
 
virtual bool debugIsValidSlice (Slice *slice)
 Check that this slice is valid for use with this strategy. More...
 
virtual void getPivot (Term &term, Slice &slice)
 Used by pivotSplit to obtain a pivot. More...
 
void independenceSplit (auto_ptr< Slice > slice)
 

Private Attributes

IndependenceSplitter _indepSplitter
 
vector< HilbertIndependenceConsumer * > _consumerCache
 
ElementDeleter< vector< HilbertIndependenceConsumer * > > _consumerCacheDeleter
 
CoefTermConsumer_consumer
 
bool _useIndependence
 

Additional Inherited Members

- Protected Member Functions inherited from SliceStrategyCommon
virtual bool simplify (Slice &slice)
 Simplifies slice and returns true if it changed. More...
 
auto_ptr< SlicenewSlice ()
 Returns a slice from the cache that freeSlice adds to, or allocate a new one using allocateSlice. More...
 
virtual void pivotSplit (auto_ptr< Slice > slice)
 Takes over ownership of slice. More...
 
bool getUseIndependence () const
 Returns true if independence splits should be performed when possible. More...
 
bool getUseSimplification () const
 Returns true if slices should be simplified. More...
 
- Protected Attributes inherited from SliceStrategyCommon
const SplitStrategy_split
 
TaskEngine _tasks
 This keeps track of pending tasks to process. More...
 

Detailed Description

Definition at line 33 of file HilbertStrategy.h.

Constructor & Destructor Documentation

◆ HilbertStrategy()

HilbertStrategy::HilbertStrategy ( CoefTermConsumer consumer,
const SplitStrategy splitStrategy 
)

Definition at line 29 of file HilbertStrategy.cpp.

Member Function Documentation

◆ allocateSlice()

auto_ptr< Slice > HilbertStrategy::allocateSlice ( )
privatevirtual

Directly allocate a slice of the correct type using new.

Implements SliceStrategyCommon.

Definition at line 92 of file HilbertStrategy.cpp.

◆ debugIsValidSlice()

bool HilbertStrategy::debugIsValidSlice ( Slice slice)
privatevirtual

Check that this slice is valid for use with this strategy.

No check need be performed unless DEBUG is defined, making it acceptable to check things using ASSERT. This method should not be called if DEBUG is not defined.

Implements SliceStrategyCommon.

Definition at line 96 of file HilbertStrategy.cpp.

◆ freeConsumer()

void HilbertStrategy::freeConsumer ( auto_ptr< HilbertIndependenceConsumer consumer)

Definition at line 108 of file HilbertStrategy.cpp.

◆ getPivot()

void HilbertStrategy::getPivot ( Term pivot,
Slice slice 
)
privatevirtual

Used by pivotSplit to obtain a pivot.

Implements SliceStrategyCommon.

Definition at line 102 of file HilbertStrategy.cpp.

◆ independenceSplit()

void HilbertStrategy::independenceSplit ( auto_ptr< Slice slice)
private

Definition at line 119 of file HilbertStrategy.cpp.

◆ newConsumer()

auto_ptr< HilbertIndependenceConsumer > HilbertStrategy::newConsumer ( )
private

Definition at line 147 of file HilbertStrategy.cpp.

◆ newHilbertSlice()

auto_ptr< HilbertSlice > HilbertStrategy::newHilbertSlice ( )
private

Definition at line 86 of file HilbertStrategy.cpp.

◆ processSlice()

bool HilbertStrategy::processSlice ( TaskEngine tasks,
auto_ptr< Slice slice 
)
virtual

Process the parameter slice.

Returns true if this is a base case and false otherwise.

Implements SliceStrategy.

Definition at line 66 of file HilbertStrategy.cpp.

◆ run()

void HilbertStrategy::run ( const Ideal ideal)
virtual

Run the Slice algorithm.

Implements SliceStrategy.

Definition at line 37 of file HilbertStrategy.cpp.

Member Data Documentation

◆ _consumer

CoefTermConsumer* HilbertStrategy::_consumer
private

Definition at line 59 of file HilbertStrategy.h.

◆ _consumerCache

vector<HilbertIndependenceConsumer*> HilbertStrategy::_consumerCache
private

Definition at line 56 of file HilbertStrategy.h.

◆ _consumerCacheDeleter

ElementDeleter<vector<HilbertIndependenceConsumer*> > HilbertStrategy::_consumerCacheDeleter
private

Definition at line 57 of file HilbertStrategy.h.

◆ _indepSplitter

IndependenceSplitter HilbertStrategy::_indepSplitter
private

Definition at line 53 of file HilbertStrategy.h.

◆ _useIndependence

bool HilbertStrategy::_useIndependence
private

Definition at line 60 of file HilbertStrategy.h.


The documentation for this class was generated from the following files: