CoCoALib-0.9905 date: 23 May 2007


QBGenerator.H

Go to the documentation of this file.
00001 #ifndef CoCoA_QBGenerator_H
00002 #define CoCoA_QBGenerator_H
00003 
00004 //   Copyright (c)  2006  John Abbott
00005 
00006 //   This file is part of the source of CoCoALib, the CoCoA Library.
00007 
00008 //   CoCoALib is free software; you can redistribute it and/or modify
00009 //   it under the terms of the GNU General Public License (version 2)
00010 //   as published by the Free Software Foundation.  A copy of the full
00011 //   licence may be found in the file COPYING in this directory.
00012 
00013 //   CoCoALib is distributed in the hope that it will be useful,
00014 //   but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016 //   GNU General Public License for more details.
00017 
00018 //   You should have received a copy of the GNU General Public License
00019 //   along with CoCoA; if not, write to the Free Software
00020 //   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00021 
00022 
00023 #include "CoCoA/PPMonoid.H"
00024 
00025 #include <iosfwd>
00026 //using std::ostream;
00027 #include <list>
00028 //using std::list;
00029 #include <vector>
00030 //using std::vector;
00031 
00032 namespace CoCoA
00033 {
00034 
00035   class QBGenerator
00036   {
00037   public:
00038     explicit QBGenerator(const PPMonoid& PPM);
00039     // default copy ctor and assignment are OK
00040     // default dtor is OK
00041     void myCornerPPIntoQB(PPMonoidElem pp);
00042     void myCornerPPIntoAvoidSet(ConstRefPPMonoidElem pp);
00043     const std::list<PPMonoidElem>& myNewCorners() const;
00044     const std::list<PPMonoidElem>& myCorners() const;
00045     const std::vector<PPMonoidElem>& myQB() const;
00046     const PPMonoid& myPPM() const;
00047     void myOutputSelf(std::ostream& out) const;
00048   private: // data members
00049     PPMonoid myPPMValue;
00050     std::list<PPMonoidElem> myCornerList;
00051     std::list<PPMonoidElem> myNewCornerList;
00052     std::vector<PPMonoidElem> myAvoidList;
00053     std::vector<PPMonoidElem> myQBList;
00054   };
00055 
00056   const PPMonoid& PPM(const QBGenerator& QBG);
00057   std::ostream& operator<<(std::ostream& out, const QBGenerator& QBG);
00058 
00059 } // end of namespace CoCoA
00060 
00061 
00062 
00063 // RCS header/log in the next few lines
00064 // $Header: /Volumes/Home/cocoa/cvs-repository/CoCoALib-0.99/include/CoCoA/QBGenerator.H,v 1.1.1.1 2007/03/09 15:16:11 abbott Exp $
00065 // $Log: QBGenerator.H,v $
00066 // Revision 1.1.1.1  2007/03/09 15:16:11  abbott
00067 // Imported files
00068 //
00069 // Revision 1.6  2007/02/22 17:27:02  bigatti
00070 // -- removed useless comment
00071 //
00072 // Revision 1.5  2007/01/09 15:52:08  cocoa
00073 // Changed QBGenerator to use std::vector instead of std::list for the result.
00074 // Minor mod to configure script.
00075 //
00076 // Revision 1.4  2006/12/06 17:15:26  cocoa
00077 // -- removed #include "config.H"
00078 //
00079 // Revision 1.3  2006/10/06 14:04:15  cocoa
00080 // Corrected position of #ifndef in header files.
00081 // Separated CoCoA_ASSERT into assert.H from config.H;
00082 // many minor consequential changes (have to #include assert.H).
00083 // A little tidying of #include directives (esp. in Max's code).
00084 //
00085 // Revision 1.2  2006/08/07 21:23:25  cocoa
00086 // Removed almost all publicly visible references to SmallExponent_t;
00087 // changed to long in all PPMonoid functions and SparsePolyRing functions.
00088 // DivMask remains to sorted out.
00089 //
00090 // Revision 1.1.1.1  2006/05/30 11:39:37  cocoa
00091 // Imported files
00092 //
00093 // Revision 1.2  2006/04/27 13:45:30  cocoa
00094 // Changed name of NewIdentityRingHom to NewIdentityHom.
00095 // Changed name of member functions which print out their own object
00096 // into myOutputSelf (to distinguish from "transitive" myOutput fns).
00097 //
00098 // Revision 1.1  2006/04/21 15:03:23  cocoa
00099 // New code for Buchberger-Moeller and variants.
00100 //
00101 
00102 #endif

Generated on Wed May 23 13:45:23 2007 for CoCoALib by  doxygen 1.4.6