CoCoALib-0.9905 date: 23 May 2007


RingQ.H

Go to the documentation of this file.
00001 #ifndef CoCoA_RingQ_H
00002 #define CoCoA_RingQ_H
00003 
00004 //   Copyright (c)  2005,2007  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 // RingQ() is the CoCoA ring representing the rationals.
00024 
00025 namespace CoCoA
00026 {
00027 
00028   class ring;  // fwd decl, defined in ring.H
00029   class FractionField; // fwd decl, defined in FractionField.H
00030   class RingHom; // fwd decl, defined in RingHom.H
00031 
00032   const FractionField& RingQ(); ///< The unique field of rationals.
00033   bool IsQ(const ring& R);
00034   RingHom QEmbeddingHom(const ring& codomain); ///< This can produce a partial homomorphism.
00035 
00036 } // end of namespace CoCoA
00037 
00038 
00039 
00040 // RCS header/log in the next few lines
00041 // $Header: /Volumes/Home/cocoa/cvs-repository/CoCoALib-0.99/include/CoCoA/RingQ.H,v 1.1.1.1 2007/03/09 15:16:11 abbott Exp $
00042 // $Log: RingQ.H,v $
00043 // Revision 1.1.1.1  2007/03/09 15:16:11  abbott
00044 // Imported files
00045 //
00046 // Revision 1.7  2007/03/05 21:20:10  cocoa
00047 // Better comments, renamed the embedding hom.
00048 //
00049 // Revision 1.6  2007/03/03 14:07:23  bigatti
00050 // -- "foundations" renamed into "GlobalManager"
00051 //
00052 // Revision 1.5  2007/03/02 10:47:53  cocoa
00053 // First stage of RingZ modifications -- tests do not compile currently, Anna will fix this.
00054 //
00055 // Revision 1.4  2007/02/26 15:00:54  bigatti
00056 // -- added placeholders for new syntax based on unique Z implementation
00057 //
00058 // Revision 1.3  2006/12/06 17:21:55  cocoa
00059 // -- removed #include "config.H"
00060 //
00061 // Revision 1.2  2006/10/06 10:15:53  cocoa
00062 // In response to Susan's bug: a fiasco when compiling with CoCoA_MEMPOOL_DEBUG
00063 // set wrongly.  Moved several implementation classes out of their header files
00064 // into the implementation files.  Several functions had to be uninlined.
00065 // Also corrected position of #include, etc.
00066 //
00067 // Revision 1.1.1.1  2006/05/30 11:39:37  cocoa
00068 // Imported files
00069 //
00070 // Revision 1.2  2006/03/12 21:28:34  cocoa
00071 // Major check in after many changes
00072 //
00073 // Revision 1.1.1.1  2005/10/17 10:46:54  cocoa
00074 // Imported files
00075 //
00076 // Revision 1.2  2005/06/22 14:42:16  cocoa
00077 // Renamed MemPool data member to myMemMgr
00078 // (seems more sensible than myMemory).
00079 //
00080 // Revision 1.1.1.1  2005/05/03 15:47:30  cocoa
00081 // Imported files
00082 //
00083 // Revision 1.3  2005/04/19 14:06:04  cocoa
00084 // Added GPL and GFDL licence stuff.
00085 //
00086 // Revision 1.2  2005/02/11 14:15:20  cocoa
00087 // New style ring elements and references to ring elements;
00088 // I hope I have finally got it right!
00089 //
00090 // Revision 1.1.1.1  2005/01/27 15:12:13  cocoa
00091 // Imported files
00092 //
00093 // Revision 1.14  2004/11/18 18:33:41  cocoa
00094 // Now every ring know its own "one" element (as well as "zero").
00095 // Several consequential changes.
00096 //
00097 // Revision 1.13  2004/11/12 15:49:29  cocoa
00098 // Tidying prior to 0.90 release.
00099 // (a) documentation improved (or marked as poor)
00100 // (b) sundry minor improvements to the code
00101 //
00102 // Revision 1.12  2004/11/11 13:04:30  cocoa
00103 // -- added \include *.txt for doxygen
00104 //
00105 // Revision 1.11  2004/11/05 15:34:33  cocoa
00106 // Consequential change following from the renaming of
00107 // FieldIdealImpl and the introduction of the new pseudo-ctor.
00108 //
00109 // Revision 1.10  2004/11/04 18:47:43  cocoa
00110 // (1) Ring member functions which previously expected mpz_t args
00111 //     now expect ZZ args.  Numerous minor consequential changes.
00112 // (2) Renamed function which gives access to the mpz_t value inside
00113 //     a ZZ object: previously was raw(...), now is mpzref(...).
00114 //     Plenty of calls had to be altered.
00115 //
00116 // Revision 1.9  2004/07/27 16:03:39  cocoa
00117 // Added IsCommutative test and IamCommutative member function
00118 // to all rings.  Tidied geobuckets a little.
00119 //
00120 // Revision 1.8  2004/07/16 15:45:12  cocoa
00121 // First stage of new RingElem implementation completed.
00122 //
00123 // Revision 1.7  2004/05/24 15:52:13  cocoa
00124 // Major update:
00125 //   new error mechanism
00126 //   many fixes
00127 //   RingHoms almost work now
00128 //   RingFloat much improved
00129 //
00130 // Revision 1.6  2004/04/08 15:33:34  cocoa
00131 // Added function IsInteger, and the related RingBase::myIsInteger
00132 // virtual function, plus all necessary implementations.
00133 //
00134 // Revision 1.5  2004/03/20 17:46:10  cocoa
00135 // Check in prior to departure to RWCA
00136 //
00137 // Revision 1.4  2004/02/03 16:16:20  cocoa
00138 // Removed pointless IamGCDDomain functions from several concrete rings.
00139 // Added IamOrderedDomain functions where appropriate.
00140 // Tidied ctors for the small finite fields.
00141 //
00142 // Revision 1.3  2004/01/30 14:07:10  cocoa
00143 // Tidied RingRawValue union: now it contains just two fields,
00144 // and has no need of forward declarations of types used internally
00145 // by the concrete rings -- it uses explicitly a void* instead.
00146 //
00147 // I have tidied the "import" functions used by most concrete rings.
00148 //
00149 // I have moved the choice of representation type for RingFp and RingFpLog
00150 // into a typedef in config.H -- this is to recognise that different
00151 // choices may work best on different platforms.
00152 //
00153 // Revision 1.2  2003/10/17 10:51:06  cocoa
00154 // Major cleaning, and new naming convention.
00155 //
00156 // Revision 1.1  2003/10/09 12:15:15  cocoa
00157 // New coding convention for rings.
00158 //
00159 
00160 #endif

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