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