Gröbner basis project
Codebase for research into Gröbner basis computation
normal_strategy.hpp
1 #ifndef __NORMAL_STRATEGY_HPP_
2 #define __NORMAL_STRATEGY_HPP_
3 
4 /*****************************************************************************\
5 * This file is part of DynGB. *
6 * *
7 * DynGB is free software: you can redistribute it and/or modify *
8 * it under the terms of the GNU General Public License as published by *
9 * the Free Software Foundation, either version 2 of the License, or *
10 * (at your option) any later version. *
11 * *
12 * Foobar is distributed in the hope that it will be useful, *
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of *
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
15 * GNU General Public License for more details. *
16 * *
17 * You should have received a copy of the GNU General Public License *
18 * along with DynGB. If not, see <http://www.gnu.org/licenses/>. *
19 \*****************************************************************************/
20 
21 #include "strategies.hpp"
22 
24 
33 public:
35 
42 
43 
45  virtual bool equivalent(const Pair_Strategy_Data & sd) const;
47  virtual bool first_larger(const Pair_Strategy_Data & sd) const;
49 
50  virtual StrategyFlags type() { return StrategyFlags::NORMAL_STRATEGY; }
53 
54  friend ostream & operator <<(ostream &, const Normal_Strategy &);
57 protected:
60 };
61 
62 #endif
virtual bool equivalent(const Pair_Strategy_Data &sd) const
implementation of equivalent()
virtual bool first_larger(const Pair_Strategy_Data &sd) const
implementation of first_larger()
Structure for sorting critical pairs.
Definition: strategies.hpp:145
Normal_Strategy(Critical_Pair_Basic &cpb)
all the information we need is in cpb already so no additional processing is necessary ...
StrategyFlags
flag indicating which strategy to use for computation
Definition: strategies.hpp:34
ordering critical pairs using the normal strategy
Critical_Pair_Basic * cp
the critical pair to which this Normal_Strategy belongs
Controls the creation of s-polynomials.