Tue Oct 28 14:46:08 1997 Jens Schmidt **************** Factory Version 1.3b released **************** * NEWS: updated to 1.3b * README: doc fix. Updated to 1.3b. * INSTALL: doc fix. Updated to 1.3b. * configure.in (factory_version): updated to 1.3b * examples/GNUmakefile: doc fix * configure.in (factory_configuration): new variable * config.h.in (FACTORYCONFIGURATION): new #define * configure.in (ac_cv_shift): set to `yes' in case of cross compiling * examples/application.cc (main): check on existence of GF(q) tables removed Mon Oct 27 15:14:19 1997 Jens Schmidt * examples, examples/GNUmakefile, examples/application.cc, examples/gcd.cc, examples/factorize.cc: new files * GNUmakefile.in (distfiles, dist): `examples/' and `examples/*' added to distribution * canonicalform.cc (operator >, operator <): bug fix. Calls `comparecoeff()' in the right way. Fri Oct 24 18:44:37 1997 Jens Schmidt * GNUmakefile.in (TMPLCXXFLAGS): set to `$(LIBCXXFLAGS)' * cf_gcd.cc (gcd): bug fix. Handles polynomials with rational coefficients correctly Thu Oct 23 14:13:42 1997 Jens Schmidt * ftmpl_inst.cc: implicit instantiations of `ListItem' changed to explicit instantiations * factory.template, factoryconf.template, gengftables.cc, ftmpl_inst.cc: doc fix * cf_globals.cc (factoryConfiguration): new external variable. Declaration added. * test_install.cc (main): prints factoryConfiguration Wed Oct 22 15:41:30 1997 Jens Schmidt * configure.in: doc fixes * canonicalform.cc (operator ()): speeded up * cf_random.cc (factoryrandom): returns a random number without calculating any remainder if n equals zero * ffops.cc (ff_setprime): does not clear table of primes if the prime number used last time equals new one Tue Oct 21 13:24:48 1997 Jens Schmidt * test_install.cc: new file * GNUmakefile.in (distsrc): distribution file test_install.cc added (installtest, test_install, iftmpl_inst.o, test_install.o): new targets (clean): removes test_install (.PHONY): phony target installtest added Wed Oct 15 16:31:53 1997 Jens Schmidt * canonicalform.cc (taildegree): slightly speeded up * canonicalform.cc (operator []): assertion added. Bug fix (did not work for immediates). * canonicalform.cc (den, deriv, operator []): explicit casts to CanonicalForm added (sqrt): explicit calls to CFFactory::basic removed Tue Oct 14 16:47:28 1997 Jens Schmidt * canonicalform.cc (mvar, degree): slightly speeded up Fri Oct 10 10:19:07 1997 Jens Schmidt * gfops.cc (gf_get_table): casts to 'char *' added to avoid warnings * int_pp.cc: superfluous arguments removed * int_int.cc: doc fix * int_cf.cc: doc fix * int_rat.cc: doc fix * int_cf.cc (den): returns 'CFFactory::basic( 1 )' instead of 'genOne()' * canonicalform.cc (LC, degree( v ), tailcoeff, deriv): slightly speeded up * canonicalform.cc (Lc): new method. Declaration added. * int_cf.cc (Lc): new method. Declaration added. * int_poly.cc (Lc): new method. Declaration added. Thu Oct 9 10:20:56 1997 Jens Schmidt * cf_algorithm.cc (divides): moved from canonicalform.cc to cf_algorithm.cc. Declaration moved, too. In all files which refer to this function #include of cf_algorithm.h added. (divides): doc fix * canonicalform.cc (divides): moved to cf_algorithm.cc. Declaration moved, too. * canonicalform.h (Lc): new function Wed Oct 1 14:21:53 1997 Jens Schmidt * cf_random.h: (factoryrandom): n defaults to zero * cf_random.cc (factoryrandom): checks for n = zero added Tue Sep 30 10:22:43 1997 Jens Schmidt * GNUmakefile.in (%.d): order of dependencies changed Mon Sep 29 08:11:42 1997 Jens Schmidt * GNUmakefile.in (%.d): `factoryconf.h' added as dependency * canonicalform.h: doc fix * cf_ops.cc (size( CF ), size( CF, Var )): new functions. Declarations added. * fac_univar.cc: doc fix * cf_chinese.cc: doc fix * cf_resultant.cc: doc fix * cf_gcd.cc (maxnorm): spurious variable `h' removed * cf_gcd.cc (balance): slightly speeded up Fri Sep 26 12:54:41 1997 Jens Schmidt * assert.h: prints the function now where the assrtion occured if we are translating with gcc Thu Sep 25 13:51:01 1997 Jens Schmidt * cf_gcd.cc (chinesePoly): function removed (gcd_poly_univar0): slightly speeded up * cf_gcd.cc (lcm): bug fix. Returns zero now if f or g equals zero. * cf_gcd.cc (gcd_poly): does not call sparsemod on univariate polynomials an longer * cf_gcd.cc (vcontent): assertion added. * cf_gcd.cc (content( CF, Variable )): slightly speeded up. Assertion added. Wed Sep 24 12:35:40 1997 Jens Schmidt * canonicalform.cc (deriv): speeded up Tue Sep 23 17:24:24 1997 Jens Schmidt * int_int.cc: doc fix * canonicalform.cc: doc fix Fri Sep 12 17:25:14 1997 Jens Schmidt * cf_gcd.cc (isqrt): function removed * canonicalform.cc: doc fix Wed Sep 10 15:36:15 1997 Jens Schmidt * int_cf.cc (InternalCF::sign): assertion added * int_rat.cc (InternalRational::sign): call to mpz_cmp_si() replaced by call to mpz_sgn() * int_pp.cc (InternalPrimePower::sign): call to mpz_cmp_si() replaced by call to mpz_sgn() * int_int.cc (InternalInteger::sign): call to mpz_cmp_si() replaced by call to mpz_sgn() * int_pp.cc, int_int.cc, int_rat.cc, int_poly.cc, int_cf.cc, canonicalform.cc (sign): doc fix * imm.h (imm_sign): bug fix. imm_sign() returned 0 for sign(1) when calculating in GF(q). * imm.h (imm_sign): bug bug fix * gfops.h (gf_sign): doc fix * configure.in (expl_datadir): initialization fixed. If $expl_datadir is relative we prepend the current working directory now. * cf_gcd.cc (isqrt): function removed Tue Sep 9 09:06:17 1997 Jens Schmidt * README: doc fix * INSTALL: doc fix * cf_globals.h: doc checked * cf_globals.h: doc fix * cf_globals.cc: doc checked * cf_globals.cc: #include fix, doc fix * cf_primes.cc, fac_cantzass.cc, int_pp.cc, int_rat.cc: #include fix * cf_factor.cc: #include fix (factorize): cf_glob_switches.isOn() replaced by isOn() for sake of uniformity * cf_ops.cc (swapvar_between): arguments to operator * swapped * cf_ops.cc (swapvar_between, swapvar_rec): functions reordered and declarations removed * cf_ops.cc (swapvar_between1, swapvar_rec1, swapvar1): new experimental functions, to be removed in future * cf_chinese.cc: doc fix * fac_multihensel.cc: #include fix * fac_berlekamp.cc: #include fix * cf_util.cc: #include fix * ffops.h: #include fix Mon Sep 8 12:39:09 1997 Jens Schmidt * cf_algorithm.cc: doc checked * cf_algorithm.cc (psr, psq, psqr): assertions added * cf_algorithm.cc (psq, psqr): return correct values now if deg(f) < deg(g) (psr, psq, psqr): return correct values now if f = 0 * cf_algorithm.cc (cden): recursion terminates now for f in base domain instead for f in coefficient domain * cf_map.h: doc fix * cf_map.cc: doc fix * cf_algorithm.h: doc fix * cf_switches.h: doc fix * cf_switches.cc: doc fix Thu Sep 4 10:19:25 1997 Jens Schmidt * cf_ops.cc: doc checked * cf_ops.cc: (replacevar, replacevar_between): new functions * canonicalform.h (replacevar): new declaration * cf_algorithm.cc: doc fix * cf_resultant.cc: doc fix * cf_algorithm.cc: new file (psr, psq, psqr, cden, common_den): functions moved from cf_ops.cc to cf_algorithm.cc * cf_ops.cc (psr, psq, psqr, cden, common_den): functions moved to cf_algorithm.cc * cf_algorithm.h: declarations of functions from cf_algorithm.cc moved from canonicalform.h to cf_algorithm.h * canonicalform.h: declarations of functions from cf_algorithm.cc moved to cf_algorithm.h. In all files which refer to these functions #include of cf_algorithm.h added. * GNUmakefile.in (basefactorysrc): cf_algorithm.cc added to distribution * cf_ops.cc (apply): bug fix. In case f.inCoeffDomain() result is now initialized to f. Mon Sep 1 10:47:41 1997 Jens Schmidt * cf_algorithm.h: doc checked * cf_resultant.cc: doc checked * canonicalform.h (resultant): declaration moved to cf_algorithm.h * cf_algorithm.h (resultant): declaration moved from canonicalform.h to cf_algorithm.h * cf_ops.cc (resultant): function moved to cf_resultant.cc * cf_resultant.cc (trivialResultant): new function * cf_resultant.cc (resultant): moved from cf_ops.cc to cf_resultant.cc. Completely rewritten. * cf_ops.cc (psr): returns f now if deg(f) < deg(g) * cf_resultant.cc (subResChain): new function * cf_algorithm.h (subResChain): new declaration * cf_factor.cc (factorize( CanonicalFormn, bool ), sqrFree): default argument initializer from definition removed Fri Aug 29 09:10:28 1997 Jens Schmidt * canonicalform.cc (degree( Variable )): slightly speeded up (deriv( Variable )): slightly speeded up * canonicalform.h (deriv): doc fix * canonicalform.cc (deriv( Variable )): assertion added (deriv( Variable )): bug fix * cf_algorithm.h: declarations of functions from cf_linsys.cc moved from canonicalform.h to cf_algorithm.h * canonicalform.h: declarations of functions from cf_linsys.cc moved to cf_algorithm.h * cf_factor.cc (sqrFree( CF )): removed (sqrFree( CF, bool )): default argument initializer added (factorize( CF, bool )): default argument initializer added * cf_algorithm.h (sqrFree( CF )): declaration removed (sqrFree( CF, bool )): default argument initializer added to declaration (factorize( CF, bool )): default argument initializer added to declaration * GNUmakefile.in (basefactorysrc): cf_resultant.cc added to distribution * cf_algorithm.h: declarations from cf_factor.h moved to cf_algorithm.h * cf_factor.h: declarations moved to cf_algorithm.h. cf_factor.h removed. All #include statements changed. * GNUmakefile.in (basefactoryincl): cf_factor.h removed from distribution * canonicalform.h: declarations of functions from cf_factor.cc removed. In all files which refer to these functions #include of cf_algorithm.h added. * cf_algorithm.h: new file * cf_algorithm.h: declarations from cf_chinese.h moved to cf_algorithm.h * cf_chinese.h: declarations moved to cf_algorithm.h. cf_chinese.h removed. All #include statements changed. * GNUmakefile.in (basefactoryincl): cf_chinese.h removed from distribution. cf_algorithm.h added to distribution. Thu Aug 28 09:21:15 1997 Jens Schmidt * cf_map.h: superfluous '#include "templates/ftmpl_functions.h"' removed Mon Aug 4 16:57:27 1997 Jens Schmidt * canonicalform.cc (sqrt): doc fix Fri Aug 1 11:06:58 1997 Jens Schmidt * cf_map.cc (operator << ( ostream& s, const CFMap & m )): rewritten * configure.in: checks for compiler characteristic are done with C instead of C++ Thu Jul 31 14:59:07 1997 Jens Schmidt * fac_univar.cc (kBound): bound fixed * canonicalform.h (sqrt): doc fix * canonicalform.cc (sqrt): immediate case completely rewritten Wed Jul 30 09:40:08 1997 Jens Schmidt * cf_linsys.cc (bound): off by one errors fixed (linearSystemSolve): off by one errors fixed * cf_linsys.cc (bound): debug output added * cf_linsys.cc (bound): returns now bound + 1 * canonicalform.cc (sqrt): sqrt(0) works now (sqrt): assertion added (sqrt): 'int h' changed to 'long long h'. Casts added. * cf_defs.h (SW_RATIONAL, SW_QUOTIENT, SW_SYMMETRIC_FF, SW_BERLEKAMP, SW_FAC_USE_BIG_PRIMES, SW_FAC_QUADRATICLIFT, SW_USE_EZGCD, SW_USE_SPARSEMOD): #defines replaced by 'const int's * canonicalform.cc (fillVarsRec, getNumVars, getVars): moved to cf_ops.cc * cf_ops.cc (fillVarsRec, getNumVars, getVars): moved from canonicalform.cc to cf_ops.cc * cf_ops.cc: doc fix Thu Jul 24 12:44:46 1997 Jens Schmidt * GNUmakefile.in (distfiles): bin/folding.el and bin/fold-docu.el added Wed Jul 23 09:45:35 1997 Jens Schmidt * cf_map.h: doc checked * cf_map.h (class CFMap): references to List replaced by CFList * cf_map.cc: doc checked * cf_map.cc (CFMap( CFList )): 'P.append()' replaced by 'P.insert()' * cf_chinese.cc (chineseRemainder( CF, ... )): operator % replaced by function mod() * README: doc fix Tue Jul 22 11:04:30 1997 Jens Schmidt * cf_map.cc (CFList, CFListIterator, MPListIterator): references to List, ListIterator, and ListIterator replaced by their respective typedefs * canonicalform.cc (initCanonicalForm): initialization of switches removed since they are initialized by constructor * bin/folding.el: doc checked * bin/fold-docu.el: doc checked * bin/folding.el: new file * bin/fold-docu.el: new file * bin/fold-docu.el (fold-docu): works now for all fold marks * README: doc fix * cf_switches.h: doc checked * cf_switches.cc: doc checked * cf_switches.h (CFSwitchesMax): new constant * cf_switches.h (class CFSwitches): number of switches replaced by references to 'const int CFSwitchesMax' * cf_switches.cc (CFSwitches): number of switches replaced by references to 'const int CFSwitchesMax' * cf_util.h: doc checked * cf_util.cc: doc checked **************** Factory Version 1.3a released **************** * configure.in: doc fix * INSTALL: doc fix * NEWS: doc fix * README: doc fix Mon Jul 21 12:58:04 1997 Jens Schmidt * sm_sparsemod.cc (internalSparsemod): sparsemod() renamed to internalSparsemod() (sparsemod): new function which is a simple wrapper around internalSparsemod() * GNUmakefile.in (distfiles): NEWS and INSTALL added to distribution * configure.in (factory_version): version number incremented * INSTALL: version number incremented * README: version number incremented * configure.in: doc fix * GNUmakefile.in (dist): changed suffix of distribution suffix (distclean): changed suffix of distribution suffix * NEWS: doc fix * INSTALL: doc fix * INSTALL: new file * README: doc fix * GNUmakefile.in (installgftables): bug fixes undone (installgftables): completely rewritten Sat Jul 19 08:57:34 1997 Jens Schmidt * GNUmakefile.in (installgftables): bug fix * GNUmakefile.in (dist): output is more beautyful now * cf_gcd.cc (gcd_poly): call to sparsemod() added * cf_ops.cc (resultant): assertion added (resultant): new variable flipFactor (resultant): handling of trivial cases fixed (resultant): some other minor bug fixes * cf_ops.cc (resultant): doc fix * README: doc fix * NEWS: doc fix * GNUmakefile.in (uninstallgftables): brute force ('rm -rf') replaced by a safer variant Thu Jul 17 11:05:04 1997 Jens Schmidt * sm_util.cc: doc fix (interpol): doc fix * sm_util.h (REArray): bug fix * sm_sparsemod.cc: new file * GNUmakefile.in (basefactoryincl): files sm_util.h and sm_sparsemod.h added (basefactorysrc): files sm_util.cc and sm_sparsemod.cc added * NEWS: new file Wed Jul 16 11:35:06 1997 Jens Schmidt * cf_chinese.cc: doc checked * cf_chinese.h: doc checked * .cvsignore (config.cache): new entry * canonicalform.cc (CanonicalForm::ilog2): new method * canonicalform.h (class CanonicalForm): new declaration of ilog2 (ilog2): new function * int_cf.cc (InternalCF::ilog2): new method * int_cf.h (class InternalCF): new declaration of ilog2 * int_int.cc (InternalInteger::ilog2): new method * int_int.h (class InternalInteger): new declaration of ilog2 * fac_univar.cc (norm, dnorm): function dnorm replaced by norm (kBound): uses ilog2() and norm() now Tue Jul 15 14:47:53 1997 Jens Schmidt * sm_util.h (REArray): new typedef. All references to Array changed to REArray. * sm_util.h: doc checked * sm_sparsemod.h: doc checked * sm_sparsemod.h: new file Mon Jul 14 10:00:59 1997 Jens Schmidt * sm_util.h: doc fix * sm_util.h (dinterpol): bug fix of declaration * sm_util.cc: doc fix * sm_util.cc: new file * sm_util.h: new file * int_cf.h (OBJDEL): spurious macro OBJDEL removed * README: new file * GNUmakefile.in (distfiles): README added to distribution * canonicalform.cc (initCanonicalForm): initialization of SW_USE_SPARSEMOD added * canonicalform.cc (CanonicalForm::degree( Variable )): doc fix * configure.in: doc fix * configure.in (libmem, headerfactory, factoryconf): output variables removed * configure.in (templatedir): initialization fixed Fri Jul 11 09:48:26 1997 Jens Schmidt * canonicalform.cc (CanonicalForm::degree): doc fix * GNUmakefile.in: dependencies checked * GNUmakefile.in: doc fix * GNUmakefile.in (.PHONY): phony targets updated * GNUmakefile.in (clean): core and *~ will not be removed any longer * GNUmakefile.in (depend): dependencies config.h and factoryconf.h removed * GNUmakefile.in (dist): 'chmod 777' removed * GNUmakefile.in (gengftables): dependency on 'all' replaced by dependency on $(libfactory) and libcfmem.a * GNUmakefile.in (gengftables.o): dependency cf_util.h removed (gengftables.o): dependencies factoryconf.h and config.h added * GNUmakefile.in (installcf, installgftables): bug fix (uninstallcf): bug fix * GNUmakefile.in (libmem, headerfactory, factoryconf): variables removed. All references changed (to 'libcfmem.a', 'factory.h', and 'factoryconf.h', resp.). * GNUmakefile.in (realmaintainer-clean): target removed * GNUmakefile.in (templatesrc, templateincl): file ftmpl_functions.h moved from $(templateincl) to $(templatesrc) * GNUmakefile.in (TESTLDFLAGS): flag '-L.' moved to target gengftables (gengftables): '-L.' moved from $(TESTLDFLAGS) to command * GNUmakefile.in (TESTCXXFLAGS): new variable (gengftables.o): references to $(LIBCXXFLAGS) replaced by references to $(TESTCXXFLAGS) Tue Jul 1 14:26:29 1997 Jens Schmidt * GNUmakefile.in (dist): use ln instead of cp to build distribution * canonicalform.cc (initCanonicalForm, mmInit): initialize memory managment if compiled with Singular. New declaration of mmInit(). * cf_random.cc (RandomGenerator): definitions of 'const long int' in class for mac removed. Instead, they are initialized in the constructor. * cf_random.h (factoryrandom, factoryseed): declarations marked as public Mon Jun 30 15:38:08 1997 Jens Schmidt * GNUmakefile.in (LIBCFLAGS, LIBCXXFLAGS, TMPLCXXFLAGS): option -Wall replaced by references to $(WARNFLAGS) (WARNFLAGS): new variable * imm.h (MINIMMEDIATELL, MAXIMMEDIATELL): initialization for mac added which does not like a 'LL' suffix * templates/ftmpl_matrix.cc: include paths for mac added * templates/ftmpl_list.cc: include paths for mac added * templates/ftmpl_factor.cc: include paths for mac added * templates/ftmpl_array.cc: include paths for mac added * factory.template: include paths for mac added * canonicalform.h: include paths for mac added * ftmpl_inst.cc: include paths for mac added * cf_gcd.cc: include paths for mac added * cf_map.cc: include paths for mac added * cf_map.h: include paths for mac added * fac_ezgcd.cc: include paths for mac added * configure: checked into RCS * readcf.cc: checked into RCS Fri Jun 27 10:33:29 1997 Jens Schmidt * bin/makeheader: doc checked * bin/install-sh: doc checked * bin/mkinstalldirs: doc checked * bin/makeheader: checked into RCS * bin/install-sh: checked into RCS * bin/mkinstalldirs: checked into RCS Thu Jun 26 16:06:39 1997 Jens Schmidt * GNUmakefile.in: doc checked * GNUmakefile.in: doc fix Wed Jun 25 10:02:51 1997 Jens Schmidt * configure.in (enable_gmp): bug fix (CPPFLAGS, LDFLAGS): bug fix Tue Jun 24 11:15:25 1997 Jens Schmidt * configure.in: doc checked * configure.in (with_builtingmp): command line option --with-builtingmp removed. All references to with_builtingmp and some additional code to deal with the command line options --with-gmp and --with-builtin-gmp removed, too. * configure.in (enable_assertions): disabled by default * configure.in (enable_gmp): with_gmp and with_builtin_gmp are set to '$(includedir)' if command line option --enable-gmp is given * configure.in: fixes in configure's messages * configure.in: doc fix Mon Jun 23 12:44:50 1997 Jens Schmidt * config.h.in: doc checked * factory.template: doc checked * factoryconf.template: doc checked * gengftables.cc: doc checked * config.h.in: doc fix * factory.template: doc fix * factoryconf.template: doc fix Fri Jun 20 12:09:00 1997 Jens Schmidt * templates/: all files prefixed with 'ftmpl_'. All #include statements changed. * GNUmakefile.in (templatesrc, templateincl): all files prefixed with 'ftmpl_' * ftmpl_inst.cc, tmpl_inst.cc: tmpl_inst.cc renamed to ftmpl_inst.cc * GNUmakefile.in: all references to tmpl_inst replaced by references to ftmpl_inst Thu Jun 19 14:33:17 1997 Jens Schmidt * config.h.in: doc fix * factoryconf.template: doc fix * headers of almost all source files fixed Thu Jun 12 13:12:49 1997 Jens Schmidt * cf_globals.cc: doc fix Fri Jun 6 09:38:05 1997 Jens Schmidt * configure.in: some stupid warnings removed if "dangerous" combinations of with's/enable's are specified on commandline. Some other fixes in configure's messages. * configure.in (enable_memdebug): code removed which sets enable_memdebug to 'normal' since this is really never tested * configure.in (with_gmp, with_builtingmp): new command line options. Rest of configure.in adapted to new scheme of specifying where gmp lives. * configure.in: doc fix * GNUmakefile.in (distsrc, clean): gengftables added to distribution (distfiles): ChangeLog added to distribution Thu Jun 5 15:03:48 1997 Jens Schmidt * configure.in (enable_debugoutput, enable_timing): dependency on with_Singular removed so '--with-Singular --enable-debugoutput' and '--with-Singular --enable-timing' are possible * GNUmakefile.in (gengftables.o): check added which makes make complain if factory was not configured in the right way * configure.in: checks on sizeof(int) == sizeof(void *) == 4 removed * debug.h: dependency on #define NDEBUG removed * factoryconf.template: doc fix * config.h.in: added to distribution as source file. config.h.in is not created from acconfig.h any longer. * acconfig.h: removed from distribution * GNUmakefile.in: ($(srcdir)/config.h.in, $(srcdir)/stamp-h.in, realmaintainerclean, dist, distfiles): changed to reflect the changes described above * config.h.in (INCL_CONFIG_H): new #define to prevent multiple inclusion of config.h * GNUmakefile.in ($(srcdir)/configure): make will not complain about a missing autoconf any longer * canonicalform.cc (operator>>): returns 0 again if #define SINGULAR and #define NOSTREAMIO are switched on Before Mon Jun 4 1997 Jens Schmidt This is a list of most of the changes I made after I took the responsibility for factory development and before I started to update the ChangeLog regularily. It is unlikely to be complete. Besides minor changes at "source code level" (bug fixes, new features) which are not really visible to the user in general there are quite a lot of changes at "organization level" (aka preprocessor level) and at "distribution level" (configure, Makefile). First, the changes at distribution level: * bin: some useful/necessary scripts added to distribution * install-sh: moved to bin * ChangeLog: added to distribution * configure.in: totally rewritten * config.h.in, conf.h.in: conf.h.in replaced by a totally rewritten config.h.in. Furthermore, config.h is now explicitly included in allmost every source file of the distribution. * factoryconf.template: new file. factoyconf.h is included instead of config.h in all source files which are not translated but installed (e.g. templates). * factory.template, factory.h: factory.h replaced by factory.template since makeheader is now included in the distribution * factory.template: rewritten to new makeheader syntax * factory.template, singfactory.h: Singular stuff moved from singfactory.h to factory.template. Wrapped by #ifdef SINGULAR. * singfactory.h: removed from distribution * gengftables.cc: code for generating gftables added to distribution * GNUmakefile.in, Makefile.in: Makefile.in replaced by a totally rewritten GNUmakefile.in * INSTALL: removed from distribution since not up to date * memman.h, mmalloc.c, mmallocs.c, mmheap.c, mmprivate.h, mmutil.c, mmallocb.c, mmblock.c, mminit.c, mmspec.c: new memory manager added to distribution * mpext.cc, mpext.h, mpfactory.h: removed from distribution. No more MP support. * config.h.in (MULTIPROTOCOL): #define MULTIPROTOCOL removed * int_int.h (class InternalInteger): declarations dependent on #define MULTIPROTOCOL removed * int_rat.h (class InternalRational): declarations dependent on #define MULTIPROTOCOL removed * readcf.cc: added to distribution since not all users have bison available Now for the changes at organization level: If we refer to the "DEBOUT macros", the "ASSERT macros", or the "TIMING macros" we mean one (or more) of the macros defined in debug.h, assert.h, and timing.h, resp. * assert.h (NOASSERT, NDEBUG): #define NDEBUG to switch off assertions replaced by #define NOASSERT. For sake of backward compatibility NDEBUG works, too. * assert.h (DEBINCLEVEL, DEBDECLEVEL, DEBOUTSL, DEBOUT, DEBOUTLN): DEBOUT macros moved to debug.h * assert.cc: renamed to debug.cc * debug.h, debug.cc: new files. DEBOUT macros moved from assert.h/assert.cc to debug.h/debug.cc. All source files which need these macros include debug.h. * assert.h (PVIRT_VOID, PVIRT_INTCF, PVIRT_BOOL, PVIRT_INT, PVIRT_CHARCC): PVIRT_*-macros moved from int_cf.h to assert.h * int_cf.h (PVIRT_VOID, PVIRT_INTCF, PVIRT_BOOL, PVIRT_INT, PVIRT_CHARCC): PVIRT_*-macros moved to assert.h * assert.h (__ASSERT, __STICKYASSERT): the preprocessor instead of fprintf() pastes the message into the format string now * assert.h (__ASSERT1, ASSERT1, STICKYASSERT1): new macros * assert.h (__WARN, WARN, STICKYWARN): new macros * canonicalform.cc (operator>>): dependency on #define SINGULAR removed * cf_defs.h (INCL_CF_DEFS_H, incl_cf_defs_H): #define incl_cf_defs_H renamed to #define INCL_CF_DEFS_H so cf_defs.h is included only once * cf_factor.cc (factorize): dependency on #define MULTIFACTOR removed * cf_factory.cc (CFFactory::basic( int, int )): error message changed to call of ASSERT macros * fac_util.cc: (crossprod): error message changed to call of ASSERT macros * int_cf.cc: several error messages changed to calls of ASSERT macros * int_cf.h (InternalCF::InternalCF( InternalCF& )): error message changed to call of ASSERT macros * int_poly.cc (InternalPoly::InternalPoly( InternalPoly& )): error message changed to call of ASSERT macros * templates/array.cc (Array::operator[], Array::operator+=): error messages changed to calls of ASSERT macros * templates/list.cc (List::getFirst, List::getLast, ListIterator::getItem): error messages changed to calls of ASSERT macros * cf_gcd.cc: debug output changed to calls of DEBOUT macros * cf_linsys.cc: debug output rewritten and changed to calls of DEBOUT macros * fac_berlekamp.cc (QPrintFF, QPrintGF): definition and calls of QPrintFF(), QPrintGF() wrapped by #ifdef DEBUGOUTPUT * fac_univar.cc: debug output rewritten (hprint): calls to hprint() wrapped by calls to #define DEBOUTHPRINT, which definition depends on #define DEBUGOUTPUT (instead of NDEBUG, as before). All callers changed. * cf_linsys.cc: superfluous #define TIMING removed * fac_distrib.cc: superfluous #undef DEBUGOUTPUT removed * fac_ezgcd.cc: some superfluous #defines (DEBUGOUTPUT, TIMING) and #includes removed * fac_multihensel.cc: some superfluous #defines (DEBUGOUTPUT, TIMING) removed * fac_multivar.cc: some superfluous #defines (DEBUGOUTPUT, TIMING) removed * fac_univar.cc: some superfluous #defines (DEBUGOUTPUT, TIMING) and #includes removed * config.h.in (GFTABLEDIR): new #define * gfops.cc (gf_get_table): uses #define GFTABLEDIR to get path to the GF(q) tables * config.h.in (MDEBUG, NOASSERT, TIMING, DEBUGOUTPUT): new #defines * config.h.in (NOSTREAMIO): new #define NOSTREAMIO to switch off stream IO. Operators <<, >>, and related stuff wrapped by #ifndef NOSTREAMIO. * debug.cc (deb_level, level_msg, deb_inc_level): deb_inc_level()'s output made more pretty at time of first call * debug.h (DEBOUT, DEBOUTLN): slightly modified so they print "objects" instead of only one "msg" and one "object". All callers changed. * debug.h (DEBUGOUTPUT): #define DEBUGOUTPUT is switched off now if #define NDEBUG is switched on * fac_univar.cc (ZFactorizeUnivariate): timing stuff changed to calls of TIMING macros * gmpext.h: references to #define INCL_GCDEXT_H replaced by references to #define INCL_GMPEXT_H * initgmp.cc (initializeGMP): dependency on #define SINGULAR removed * mmallocb.c (MM_TEST, TEST): references to #define TEST replaced by references to #define MM_TEST * readcf.h: '#include ' replaced by '#include ' * readcf.y: dependency on #define COMEAU removed * templates/matrix.cc (ASSERT): definition of ASSERT macros replaced by inclusion of factoryconf.h * timing.h (HZ): new #define to calculate ticks per second in a more portable way. All references changed. * timing.h (TIMING_DEFINE_PRINT, TIMING_END_AND_PRINT): stream IO changed to std IO * timing.h (TIMING_END_AND_PRINT): new macro Last not least, changes at source code level: * canonicalform.cc (mapinto): fixed mapping from int to GF(q) * cf_factor.cc (sqrFree( CanonicalForm, boolean )): new function which sorts output if desired * cf_factor.cc (sqrFree( CanonicalForm )): changed to call new sqrFree() * canonicalform.h, cf_factor.h (sqrFree( CanonicalForm, boolean )): new declaration * fac_sqrfree.cc (compareFactors, sortCFFList): new functions used by new sqrFree() * fac_sqrfee.h (sortCFFList): new declaration * cf_defs.h (SW_USE_SPARSEMOD): new switch * cf_globals.cc (factoryVersion): new external * cf_globals.h (factoryVersion): new declaration * config.h.in (FACTORYVERSION): new #define * factory.template: '#include cf_globals.h' added because of version string * cf_linsys.cc (linearSystemSolve, determinant, determinant2): typedef int_ptr added (linearSystemSolve, determinant, determinant2): 'new (int*)[..]' replaced by 'new int_ptr[..]' * templates/matrix.h (Matrix::T_ptr): new typedef * templates/matrix.cc (Matrix::Matrix( int, int ), Matrix::Matrix( Matrix ), Matrix::operator=): 'new (T*)[..]' replaced by 'new T_ptr[..]' * cf_iter.h: superfluous '#include ' removed * cf_factor.h: superfluous '#include ' removed * cf_reval.h: superfluous '#include ' removed * memutil.c: superfluous '#include ' removed * mmalloc.c: superfluous '#include ' removed * cf_random.cc (RandomGenerator): new class (RanGen): new static (factoryrandom, factoryseed): calls to stdlib random generator replaced by methods of class RandomGenerator * cf_switches.h (RATIONAL): superfluous #define RATIONAL removed * int_int.cc (IntInt): superfluous #define IntInt removed * int_pp.cc (IntPP): superfluous #define IntPP removed * fac_univar.cc (initHG, ZFactorizeUnivariate): STICKYWARNings added because of some strange errors which occur in these functions * fac_univar.cc (kBound): cast to double added in calculation of the bound (UnivariateQuadraticLift): cast to double added in calculation of no_iter * fac_univar.cc (max_fp_fac, MAX_FP_FAC): '#define MAX_FP_FAC' replaced by 'const int max_fp_fac'. All references changed. * fac_univar.cc (ZFactorizeUnivariate): superfluous declaration of 'CFFList G' removed. Some trivial structural changes. Test on 'D != 0' (before deleting D) removed. * gfops.h (gf_gf2ff, gf_isff): declarations marked as public for Singular * factory.template: '#include "gfops.h"' added * gfops.cc (gf_get_table): gf_table[gf_q] is guaranteed to be 0 * gfops.cc (gf_get_table): rewritten. Major changes: copies Singulars tables if these are present instead of reading from disk. Uses standard IO instead of stream IO to read the tables. * singext.h (nfCharQ, nfM1, nfMinPoly, nfPlus1Table): declarations of Singular objects added to copy Singulars GF(q) tables * gfops.cc (gf_get_table): length of temporary buffer replaced by 'const int gf_maxbuffer' * gfops.cc (gf_isff): rewritten * gfops.cc (gf_maxtable, MAXTABLE): '#define MAXTABLE' replaced by 'const int gf_maxtable'. All references changed. * gfops.cc (gf_valid_combination): 'int m' replaced by references to gf_maxtable * gfops.cc (intVec2CF): new function * gfops.h (gf_mipo): new declaration * imm.h (class InternalCF): superfluous declaration of class InternalCF removed * imm.h (imm_intval): convertion from GF(q) to integer added * int_int.cc (InternalInteger::genOne): Ruedigers last fryday afternoon fix * variable.cc (Variable::name): casts to int added * variable.cc (Variable::Variable( char ), Variable::Variable( int, char ), rootOf): 'delete ...' changed to 'delete [] ...' where necessary