CoCoALib-0.9905 date: 23 May 2007


RingFpLog.H

Go to the documentation of this file.
00001 #ifndef CoCoA_RingFpLog_H
00002 #define CoCoA_RingFpLog_H
00003 
00004 //   Copyright (c)  2005,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/QuotientRing.H"
00024 
00025 
00026 namespace CoCoA
00027 {
00028 
00029   QuotientRing NewRingFpLog(long p);
00030   QuotientRing NewRingFpLog(const ZZ& P);
00031   QuotientRing NewRingFpLog(const ideal& I);
00032 
00033 } // end of namespace CoCoA
00034 
00035 
00036 
00037 // RCS header/log
00038 // $Header: /Volumes/Home/cocoa/cvs-repository/CoCoALib-0.99/include/CoCoA/RingFpLog.H,v 1.1.1.1 2007/03/09 15:16:11 abbott Exp $
00039 // $Log: RingFpLog.H,v $
00040 // Revision 1.1.1.1  2007/03/09 15:16:11  abbott
00041 // Imported files
00042 //
00043 // Revision 1.5  2007/03/02 10:47:53  cocoa
00044 // First stage of RingZ modifications -- tests do not compile currently, Anna will fix this.
00045 //
00046 // Revision 1.4  2006/12/06 17:21:56  cocoa
00047 // -- removed #include "config.H"
00048 //
00049 // Revision 1.3  2006/10/06 10:15:53  cocoa
00050 // In response to Susan's bug: a fiasco when compiling with CoCoA_MEMPOOL_DEBUG
00051 // set wrongly.  Moved several implementation classes out of their header files
00052 // into the implementation files.  Several functions had to be uninlined.
00053 // Also corrected position of #include, etc.
00054 //
00055 // Revision 1.2  2006/08/07 21:23:25  cocoa
00056 // Removed almost all publicly visible references to SmallExponent_t;
00057 // changed to long in all PPMonoid functions and SparsePolyRing functions.
00058 // DivMask remains to sorted out.
00059 //
00060 // Revision 1.1.1.1  2006/05/30 11:39:37  cocoa
00061 // Imported files
00062 //
00063 // Revision 1.7  2006/05/29 16:22:37  cocoa
00064 // Third time lucky???
00065 // Added myIsInteger member function to all rings (NYI for RingFloat).
00066 //
00067 // Revision 1.6  2006/05/12 16:10:58  cocoa
00068 // Added OpenMathFwd.H, and tidied OpenMath.H.
00069 // Many consequential but trivial changes.
00070 //
00071 // Revision 1.5  2006/04/21 15:01:36  cocoa
00072 // Changed default implementation of RingBase::myGcd -- it now gives a SERIOUS
00073 // error.  All fields must now handle a call to gcd explicitly: they can use
00074 // the new myGcdInField function.  It's now cleaner than it was.
00075 //
00076 // Revision 1.4  2006/03/15 18:09:31  cocoa
00077 // Changed names of member functions which print out their object
00078 // into myOutputSelf -- hope this will appease the Intel C++ compiler.
00079 //
00080 // Revision 1.3  2006/03/14 15:01:49  cocoa
00081 // Improved the implementation of ring member fns for computing powers.
00082 // Should keep Intel C++ compiler quieter too.
00083 //
00084 // Revision 1.2  2006/03/12 21:28:34  cocoa
00085 // Major check in after many changes
00086 //
00087 // Revision 1.1.1.1  2005/10/17 10:46:54  cocoa
00088 // Imported files
00089 //
00090 // Revision 1.4  2005/10/14 15:25:07  cocoa
00091 // Major tidying and cleaning to small prime finite fields.
00092 // Several consequential changes.  Improved their documentation.
00093 //
00094 // Added Makefile and script to include/CoCoA/ directory to
00095 // keep library.H up to date.
00096 //
00097 // Revision 1.3  2005/10/11 16:37:30  cocoa
00098 // Added new small prime finite field class (see RingFpDouble).
00099 //
00100 // Cleaned makefiles and configuration script.
00101 //
00102 // Tidied PPMonoid code (to eliminate compiler warnings).
00103 //
00104 // Fixed bug in RingFloat::myIsInteger.
00105 //
00106 // Revision 1.2  2005/09/30 15:03:39  cocoa
00107 // Minor cleaning and tidying.
00108 // DistrMPolyInlPP: use of summands now rather cleaner.
00109 //
00110 // Revision 1.1.1.1  2005/05/03 15:47:30  cocoa
00111 // Imported files
00112 //
00113 // Revision 1.3  2005/04/19 14:06:04  cocoa
00114 // Added GPL and GFDL licence stuff.
00115 //
00116 // Revision 1.2  2005/02/11 14:15:20  cocoa
00117 // New style ring elements and references to ring elements;
00118 // I hope I have finally got it right!
00119 //
00120 // Revision 1.1.1.1  2005/01/27 15:12:13  cocoa
00121 // Imported files
00122 //
00123 // Revision 1.15  2004/11/18 18:33:41  cocoa
00124 // Now every ring know its own "one" element (as well as "zero").
00125 // Several consequential changes.
00126 //
00127 // Revision 1.14  2004/11/11 13:04:30  cocoa
00128 // -- added \include *.txt for doxygen
00129 //
00130 // Revision 1.13  2004/11/05 15:34:33  cocoa
00131 // Consequential change following from the renaming of
00132 // FieldIdealImpl and the introduction of the new pseudo-ctor.
00133 //
00134 // Revision 1.12  2004/11/04 18:47:43  cocoa
00135 // (1) Ring member functions which previously expected mpz_t args
00136 //     now expect ZZ args.  Numerous minor consequential changes.
00137 // (2) Renamed function which gives access to the mpz_t value inside
00138 //     a ZZ object: previously was raw(...), now is mpzref(...).
00139 //     Plenty of calls had to be altered.
00140 //
00141 // Revision 1.11  2004/07/27 16:03:39  cocoa
00142 // Added IsCommutative test and IamCommutative member function
00143 // to all rings.  Tidied geobuckets a little.
00144 //
00145 // Revision 1.10  2004/07/16 15:45:12  cocoa
00146 // First stage of new RingElem implementation completed.
00147 //
00148 // Revision 1.9  2004/07/14 16:40:42  cocoa
00149 // Separated RingFpLog from its implementation which now resides in
00150 // a new class: SmallFpLogImpl.  This is analogous to the change made
00151 // to RingFp yesterday.
00152 //
00153 // Some tidying and other sundry minor changes.
00154 //
00155 // Revision 1.8  2004/05/24 15:52:13  cocoa
00156 // Major update:
00157 //   new error mechanism
00158 //   many fixes
00159 //   RingHoms almost work now
00160 //   RingFloat much improved
00161 //
00162 // Revision 1.7  2004/04/08 15:33:34  cocoa
00163 // Added function IsInteger, and the related RingBase::myIsInteger
00164 // virtual function, plus all necessary implementations.
00165 //
00166 // Revision 1.6  2004/03/20 17:46:10  cocoa
00167 // Check in prior to departure to RWCA
00168 //
00169 // Revision 1.5  2004/02/03 16:16:20  cocoa
00170 // Removed pointless IamGCDDomain functions from several concrete rings.
00171 // Added IamOrderedDomain functions where appropriate.
00172 // Tidied ctors for the small finite fields.
00173 //
00174 // Revision 1.4  2004/01/30 14:07:10  cocoa
00175 // Tidied RingRawValue union: now it contains just two fields,
00176 // and has no need of forward declarations of types used internally
00177 // by the concrete rings -- it uses explicitly a void* instead.
00178 //
00179 // I have tidied the "import" functions used by most concrete rings.
00180 //
00181 // I have moved the choice of representation type for RingFp and RingFpLog
00182 // into a typedef in config.H -- this is to recognise that different
00183 // choices may work best on different platforms.
00184 //
00185 // Revision 1.3  2003/10/17 10:51:06  cocoa
00186 // Major cleaning, and new naming convention.
00187 //
00188 // Revision 1.2  2003/10/09 12:15:45  cocoa
00189 // New coding convention for rings.
00190 //
00191 // Revision 1.13  2003/06/23 16:55:19  abbott
00192 // Minor cleaning prior to public release.
00193 // Just a name change, and alignment with new RingBase.
00194 //
00195 // Revision 1.12  2003/04/23 10:11:49  abbott
00196 // Mostly modifications parellelling those made for ring_Fp:
00197 //  * ring_FpLog is now derived from QuotientRing
00198 //  * support for ideals and RingHoms now added (incl class ring_FpLog::hom)
00199 //  * ring_FpLog ctor modified to follow pattern for QuotientRings
00200 //  * name change from AbstractRing to RingBase (last check in was ages ago!)
00201 //
00202 // Revision 1.11  2002/11/14 18:20:43  abbott
00203 // Consequential changes following the renaming in ring.H.
00204 //
00205 // Revision 1.10  2002/07/05 15:23:41  abbott
00206 // Added member function IsDivisible.
00207 //
00208 // Revision 1.9  2002/06/28 12:07:35  abbott
00209 // Now using C++ vectors and auto_ptr to achieve exception safety.
00210 //
00211 // Revision 1.8  2002/06/22 17:07:56  abbott
00212 // Changed name of "equal" member function to "IsEqual" (as per new ring.H).
00213 //
00214 // Revision 1.7  2002/06/04 13:04:51  abbott
00215 // Changed type of the elements of the log/exp tables.  It is now FpTableElem which
00216 // is a typedef local to the class ring_Fp.
00217 //
00218 // Revision 1.6  2002/05/30 14:30:15  abbott
00219 // Added member functions IsField and zero (as required by the new ring.H).
00220 // Removed bogus member function ngens.
00221 //
00222 // Revision 1.5  2002/05/15 15:24:25  abbott
00223 // Revised ring_FpLog in line with new ring.H:
00224 //   added member functions characteristic, negate, power.
00225 // Modified indentation.
00226 //
00227 // Revision 1.4  2002/03/19 14:01:11  abbott
00228 // Changed class name to ring_FpLog.
00229 //
00230 // Revision 1.3  2002/02/08 11:18:32  bigatti
00231 // - changed syntax to IsZeroAddMul
00232 //
00233 // Revision 1.2  2002/01/31 11:00:36  abbott
00234 // Disallowed copy construction and assignment.
00235 //
00236 // Revision 1.1  2002/01/30 17:15:43  abbott
00237 // Initial revision
00238 //
00239 
00240 #endif

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