1 //   Copyright (c) 2007 Alberto Arri
2 
3 //   This file is part of the source of CoCoALib, the CoCoA Library.
4 
5 //   CoCoALib is free software: you can redistribute it and/or modify
6 //   it under the terms of the GNU General Public License as published by
7 //   the Free Software Foundation, either version 3 of the License, or
8 //   (at your option) any later version.
9 
10 //   CoCoALib is distributed in the hope that it will be useful,
11 //   but WITHOUT ANY WARRANTY; without even the implied warranty of
12 //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 //   GNU General Public License for more details.
14 
15 //   You should have received a copy of the GNU General Public License
16 //   along with CoCoALib.  If not, see <http://www.gnu.org/licenses/>.
17 
18 #ifndef CoCoA_F5_H
19 #define CoCoA_F5_H
20 
21 #include "CoCoA/ring.H"
22 #include "CoCoA/PPMonoid.H"
23 #include "CoCoA/SparsePolyRing.H"
24 
25 namespace CoCoA
26 {
27 
28   namespace F5ns{
29 
30   struct F5opt_t{
31     bool incremental,skip_rows,prev_red, use_NR, GBLT2SYZLT, checkGB, verbose;
F5opt_tF5opt_t32     F5opt_t(){
33       incremental = true; //default = true
34       skip_rows = true;   //default = true
35       prev_red = true;    //default = true
36       use_NR = false;     //makes sense only if skip_rows = true
37       GBLT2SYZLT = true;  //default = true
38       checkGB = false;    //default = false
39       verbose = false;
40     }
41   };
42 
43   }
44 
45   void F5(std::vector<CoCoA::RingElem>& GB, const std::vector<CoCoA::RingElem>& I,
46 	  const F5ns::F5opt_t &F5opt = F5ns::F5opt_t());
47 
F5(std::vector<CoCoA::RingElem> & GB,const CoCoA::ideal & I)48   inline void F5(std::vector<CoCoA::RingElem>& GB, const CoCoA::ideal &I)
49   {
50     F5(GB, gens(I));
51   }
52 
53 } // end of namespace CoCoA
54 
55 
56 // RCS header/log in the next few lines
57 // $Header: /Volumes/Home_1/cocoa/cvs-repository/CoCoALib-0.99/include/CoCoA/TmpF5.H,v 1.6 2014/07/31 14:45:16 abbott Exp $
58 // $Log: TmpF5.H,v $
59 // Revision 1.6  2014/07/31 14:45:16  abbott
60 // Summary: Merged io.H and UtilsTemplate.H into new header VectorOperations.H
61 // Author: JAA
62 //
63 // Revision 1.5  2008/07/09 16:07:50  abbott
64 // Cosmetic tidying.
65 //
66 // Revision 1.4  2007/11/20 10:01:26  bigatti
67 // -- change: TmpF5.C --> TmpF5Mat.C  (by Alberto Arri)
68 // -- updated and improved test-F5.C
69 //
70 // Revision 1.3  2007/10/30 17:14:11  abbott
71 // Changed licence from GPL-2 only to GPL-3 or later.
72 // New version for such an important change.
73 //
74 // Revision 1.2  2007/03/13 10:35:30  abbott
75 // Moved F5 code into namespace CoCoA (previously it was at global level).
76 // Improved spacing and layout (previously it was haphazard).
77 //
78 
79 #endif
80