17 #ifndef PIVOT_EULER_STRATEGY_GUARD
18 #define PIVOT_EULER_STRATEGY_GUARD
38 virtual void getName(ostream& out)
const = 0;
59 (auto_ptr<PivotStrategy> stdStrat, auto_ptr<PivotStrategy> genStrat);
63 (auto_ptr<PivotStrategy> strat, FILE* out);
auto_ptr< PivotStrategy > newStdPivotStrategy(const string &name)
auto_ptr< PivotStrategy > newGenPivotStrategy(const string &name)
auto_ptr< PivotStrategy > newStatisticsPivotStrategy(auto_ptr< PivotStrategy > strat, FILE *out)
auto_ptr< PivotStrategy > newDefaultPivotStrategy()
auto_ptr< PivotStrategy > newDebugPivotStrategy(auto_ptr< PivotStrategy > strat, FILE *out)
auto_ptr< PivotStrategy > newHybridPivotStrategy(auto_ptr< PivotStrategy > stdStrat, auto_ptr< PivotStrategy > genStrat)
A pivot selection strategy for the Euler algorithm.
void operator=(const PivotStrategy &)
virtual EulerState * doPivot(EulerState &state, const size_t *divCounts)=0
Split state.
virtual bool shouldTranspose(const EulerState &state) const =0
Returns true if transposing state is adviced.
virtual void computationCompleted(const PivotEulerAlg &alg)=0
Call this function once when computation is complete.
PivotStrategy(const PivotStrategy &)
virtual void getName(ostream &out) const =0
Prints the name of the strategy to out.