Mi 13. Okt 15:52:56 CEST 2010
- release 3-1-2
- removed macos 9 stuff
- factorize for Z/p, Z/p(a) improved
- windows port improved (.h files instead of .inc)

Fri Feb 14 16:53:42 CET 2003 * hannes: bugfix
       could not factorize x2+xy+y2 in Fp(a)[x,y], a2+a+1=0
       added tests in factorize(f,a) (isPurePoly(f,a))
       added sort option to FpFactorizeUnivariateCZ and to NTL factor routines
       (NTLconvert.cc cf_factor.cc fac_cantzass.cc)

Thu Nov  7 11:29:33 MET 2002 Hans Schoenemann <hannes@mathematik.uni-kl.de>
        * interface to NTL
	* many fixes

Wed Aug 22 16:25:16 MET DST 2001 Hans Schoenemann <hannes@mathematik.uni-kl.de>
        * Version 1.3c: some utility functions for libfac
	* search for main var in factorize (experimental)

2000-09-02  Olaf Bachmann  <obachman@mathematik.uni-kl.de>

	* configure.in, etc: support for omalloc

2000-08-04  Olaf Bachmann  <obachman@mathematik.uni-kl.de>

	* ffops.cc: initialize ff_prime to 0, so that first call to
	ff_setprime always initializes ff_invtab.

Tue Feb 16 19:00:03 1999  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* GNUmakefile.in (basefactorysrc): `imm.cc' added
	  (ftestm4src): `divrem.m4' added
	  (distfiles): `factory.cfg' added

	* factory.cfg: new file

	* GNUmakefile.in (.PHONY): dependencies `doxy', `doxyclean' added
	  (doxy, doxyclean): new targets
	  (mostlyclean): dependency `doxyclean' added

	* GNUmakefile.in (doxysrc, doxyincl): new variables
	  (doxyfiles): new variable

	* GNUmakefile.in (ftestm4src): `sqrfree.m4' added

	* GNUmakefile.in (ftestsrc, ftestincl): ntl-stuff added
	  (ftestm4src): `gcd.ntl.m4', `revert.m4' added

Wed Sep 23 19:05:47 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* fac_ezgcd.cc (ezgcd_specialcase): bug fix (???).  See comments
	  in the file for more information.

Tue Jul  7 18:34:39 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* GNUmakefile.in (ftestm4src): `extgcd.m4' added to distribution

Wed Jul  1 10:57:53 1998      <pohl@FUECHSE>

	* int_intdiv.cc (modulocoeff): extra call added for `mpz_mod_ui()'
	  with void return value.  Wrapped by #define `__MWERKS__'.

Tue Jun 30 16:38:41 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* cf_algorithm.cc: doc fixes

	* cf_algorithm.cc (divides): bug fix.  Works for zero f and g.
	  More heuristic added.

	* cf_algorithm.cc (psr, psq, psqr): bug fix.  Work for `x' with
	  level lower than `level(f)' or `level(g)'.

	* cf_algorithm.h: doc fixes

	* ftmpl_inst.cc (tmax, tmin(Var, Var)): instantiations added

	* GNUmakefile.in (ftestm4src): `divides.m4' added to distribution

Mon Jun 29 12:41:40 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* templates/ftmpl_functions.h: doc fixes

	* GNUmakefile.in (basefactorysrc): `cf_inline.cc' and
	  `cf_iter_inline.cc' added to distribution

	* canonicalform.h (class CanonicalForm): friend declarations for
	  `operator -', `operator +', `operator *', `operator /',
 	  `operator %', `div', `mod' replaced by ordinary declarations

	* canonicalform.cc, canonicalform.h (CanonicalForm,
	  ~CanonicalForm, isOne, isZero, operator =): definitions of
 	  methods moved to `cf_inline.cc'.  Declarations marked as
 	  `CF_INLINE' or `CF_NO_INLINE', resp.
	  (operator -, operator +, operator *, operator /, operator %,
	  div, mod): definitions of operators moved to `cf_inline.cc'.
  	  Declarations marked as `CF_INLINE' or `CF_NO_INLINE', resp.
	* canonicalform.h (CF_INLINE, CF_NO_INLINE): new #defines.
	  `cf_iter_inline.cc' (conditionally) #included.

	* cf_iter.cc, cf_iter.h (operator++, coeff, hasTerms, exp):
	  definitions moved to `cf_iter_inline.cc'.  Declarations marked
 	  as `CF_INLINE' or `CF_NO_INLINE', resp.
	* cf_iter.h (CF_INLINE, CF_NO_INLINE): new #defines.
	  `cf_iter_inline.cc' (conditionally) #included.

	* configure.in (enable_cf_inline): new `--enable'-option
	* config.h.in (CF_USE_INLINE): new #define

	* cf_inline.cc (CanonicalForm(Variable, int))): assertion added

	* cf_inline.cc (isOne, isZero, operator -(CF)): order of immediate
	  checks changed

	* cf_inline.cc: new file

	* cf_iter_inline.cc (operator ++, coeff, exp): assertions fixed

	* cf_iter_inline.cc: new file

Fri Jun 26 12:24:34 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* int_cf.cc, int_cf.h (isOne, isZero): pure virtual methods
	  implemented.  Declarations adapted.
	* int_rat.cc, int_int.cc, int_rat.h, int_int.h, int_poly.h
	  (isZero, isOne): methods removed.  Declarations adapted.
	* int_pp.cc (isOne, isZero): slightly speeded up.  Doc fixes.
	* imm.h (imm_isone, imm_isone_p, imm_isone_gf): doc fixes
	* imm.h (imm_iszero, imm_iszero_p, imm_iszero_gf): doc fixes

	* int_poly.cc, int_pp.cc, int_rat.cc (neg): doc fixes
	* int_int.cc (neg): doc fixes.  Slightly speeded up.
	* imm.h (imm_neg, imm_neg_p, imm_neg_gf): doc fixes

Mon Jun 15 16:04:26 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* configure.in: doc fixes

	* configure.in: explicit path name generated slightly rewritten to
	  work on HP's.  Absolute path names are generated already by
	  Makefile to keep `configure.in' more readable.

Fri Jun 12 16:28:48 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* int_intdiv.cc: `canonicalform.h' included

	* gfops.cc, int_int.cc, readcf.y: order of includes fixed

	* timing.h: bug fix.  Test on `WINNT' negated.

Tue Jun  9 11:52:45 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* configure.in (ac_save_path): renamed to `$save_path'.  All
	  references changed
	  (expl_datadir, expl_gftabledir): renamed to `$explicit_datadir',
	  `$explicit_gftabledir', resp.  All references changed.

	* configure.in: checks for gmp.h and libgmp.a search in
	  `$includedir' and `$libdir', resp.

	* configure.in: new section added to get a safer explicit path
	  expansion

	* configure.in: `$gftabledir' is not longer handled in a special
	  way for Singular

Mon Jun  8 17:26:55 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* singext.h: doc fix

	* gfops.cc, singext.h (cf_get_table): use `feFopen()' to load
	  GF(q) tables if built with Singular.  Declaration added to
	  `singext.h' (by Hannes).

	* configure.in: calls to `AC_PATH_PROG' ``fixed''.  Necessary
	  because of some old autoconf version (by Olaf)

	* ftmpl_inst.cc: test on `WINNT' disabled with gcc

Wed Jun 03 16:47:54 1998    <pohl@FUECHSE>

	* ftmpl_factor.h (template <class T> class Factor):
	  `operator == ( const Factor<T> &, const Factor<T> &)'
	  removed as friend and added as extra operator

Wed Jun 03 14:47:41 1998    <pohl@FUECHSE>

	* timing.h, readcf.y, int_poly.cc, imm.h: test on WINNT
	  disabled with gcc

Mon May 11 11:36:22 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* config.h.in (FACTORY_INT64): unused declarations for MetroWerks removed

	* imm.cc (imm_mul): wrapped by `#ifdef __MWERKS__'

	* ffops.h (ff_bignorm): definition of `ff_bignorm' removed for
	  MetroWerks
	  (ff_mul): made a declaration for MetroWerks.  Defined in
	  `ffops.cc'.

	* imm.cc (imm_mul): new file for MetroWerks

	* imm.h (MINIMMEDIATELL, MAXIMMEDIATELL): definition of long long
	  constants removed for mac
	  (imm_mul): made a declaration for MetroWerks.  Defined in
	  `imm.cc'.

	* fac_cantzass.cc (CantorZassenhausFactorFFGF,
	  CantorZassenhausFactorExt): new local variables `firstFactor',
	  `secondFactor' introduced to fix order of evaluation of
	  recursive factorizations

Mon Apr 20 16:34:14 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* .cvsignore (stamp-h): entry re-added.  After all, its
	  necessary.

	* configure.in (MKINSTALLDIRS, MAKEHEADER): instead of using an
	  absolute path, use relativ path and our own variables
	  `FACTORY_MKINSTALLDIRS' and `FACTORY_MAKEHEADER'.  Do not use
	  cache to get the variables' values.
	* GNUmakefile.in (MKINSTALLDIRS, MAKEHEADER): use the values from
	  `FACTORY_MKINSTALLDIRS' and `FACTORY_MAKEHEADER', resp.

Tue Apr 14 14:05:47 1998  Wilfred Pohl  <pohl@mathematik.uni-kl.de>

	* fac_univar.cc (UnivariateQuadraticLift): type for `log()' must
	  be float, hence constant `2' replaced by `2.0'

	* config.h.in (FACTORY_INT64): new typedef for Metroworks compiler

Mon Apr  6 14:06:49 MET DST 1998  Jens Schmidt

	* int_intdiv.cc:
	  ***** merge from branch `factory-gcd' to main trunk

	* ftmpl_inst.cc: instantiations for `tabs( int )' added

	* fac_univar.cc (UnivariateQuadraticLift, UnivariateLinearLift):
	  call to `div( CF, CF )' replaced by call to `operator / ( CF, CF )'

Mon Mar 23 17:00:00 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* GNUmakefile.in (ftestm4src): references `$(ftestm4develsrc)'
	  instead of `$(ftestm4src)' from development `GNUmakefile' to
	  avoid problems when building distributions

Tue Mar 17 16:57:10 MET 1998  Jens Schmidt

	* int_int.cc, int_int.h, int_poly.cc, int_poly.h, int_intdiv.cc,
	* ChangeLog:
	  ***** merge from branch `factory-gcd' to main trunk

	* GNUmakefile.in:
	  ***** merge from branch `factory-gcd' to main trunk

	* timing.h, examples/application.cc:
	  ***** merge from branch `factory-gcd' to main trunk

Tue Mar 17 14:22:56 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

    **************** <<< changes in branch `factory-gcd' ****************

	* int_poly.cc (dividecoeff, divremcoeff): use `divideTermList()'
	  to do their work
	  (divideTermList): new function copied from former
	  `divTermList()'.  Declaration added.

	* int_poly.cc (divTermList): uses `div()' to divide coefficients

	* int_int.cc (dividesame, dividecoeff, divsame, divcoeff,
	  modulosame, modulocoeff, modsame, modcoeff, divremsame,
	  divremcoeff, divremsamet, divremcoefft): methods moved to
	  int_intdiv.cc.  Slightly speeded up.

	* int_int.h (normalizeMPI, uiNormalizeMPI, normalizeMyself,
	  uiNormalizeMyself): new `InternalIntger' methods.  Declarations
	  added.

	* int_int.h (class InternalInteger): static member `initialized' removed

	* int_intdiv.cc: new file

	* GNUmakefile.in (basefactorysrc): int_intdiv.cc added to
	  distribution

	* timing.h (TIMING_END_AND_PRINT): added for windows

	  (TIMING_DEFINE_PRINTPROTO, TIMING_PRINT): macros common to all
	  platforms extracted from `#ifdef' directive

	* timing.h (TIMING_RESET): new macro

Fri Mar 13 17:05:10 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* examples/application.cc (main): cosmetic changes

	* canonicalform.cc, canonicalform.h, cf_algorithm.cc, cf_factor.cc,
	* cf_map.cc, cf_map.h, fac_ezgcd.cc, fac_multivar.cc,
	* fac_univar.cc, fac_util.cc, fac_util.h, ffops.cc, ftmpl_array.h,
	* ftmpl_factor.h, ftmpl_functions.h, ftmpl_list.h, ftmpl_matrix.h,
	* sm_sparsemod.cc, sm_util.cc, sm_util.h, ftest/ChangeLog,
	* ftest/commonden.m4, ftest/norm.m4, templates/ftmpl_array.cc,
	* templates/ftmpl_factor.cc, templates/ftmpl_functions.h,
	* templates/ftmpl_list.cc, templates/ftmpl_matrix.cc, ChangeLog,
	* GNUmakefile.in, cf_algorithm.h, cf_gcd.cc, factory.template,
	* ftmpl_inst.cc:
	  ***** merge from main trunk to branch `factory-gcd'

    **************** >>> changes in branch `factory-gcd' ****************

Thu Mar 12 12:21:33 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* cf_gcd.cc (maxnorm): function removed.  All references replaced
	  by `maxNorm()'.

	* fac_univar.cc (norm): function removed.  All references replaced
	  by `euclideanNorm()'.

	* fac_util.cc (maxCoeff): function removed.  Declarations
	  adapted.  All references replaced by `maxNorm()'.

	* cf_algorithm.cc (divides): slightly speeded up.

	* canonicalform.h (sign): new function

	* canonicalform.cc (blcm): new function.  Declaration added.

Wed Mar 11 10:39:33 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* cf_algorithm.cc (cden, common_den): renamed to
	  `internalBCommonDen()' and `bCommonDen()', resp.  Declarations
	  adapted. All references changed.

	* cf_algorithm.h (abs): function `abs()' moved from
	  `canonicalform.h' to `cf_algorithm.h'.  All referring files
	  include `cf_algorithm.h'.

	* cf_algorithm.cc (maxNorm, euclideanNorm): new functions.
	  Declarations added.

	* cf_algorithm.cc (internalBCommonDen): uses `blcm()' instead of
	  `lcm()'

	* GNUmakefile.in (ftestm4src): `norm.m4' and `commonden.m4' added
	  to distribution

	* templates/ftmpl_functions.h (tabs): new function

	* ffops.cc (ff_setprime): uses `memset()' to clear inversion
	  table

	* ftest/ChangeLog, ftest/ftest_io.cc, ftest/ftest_io.h,
 	* ftest/ftest_util.cc, ftest/ftest_util.h, ftest/ftest_util.m4,
 	* ftest/gcd.fex, ftest/runfex:
  	  ***** merge from branch `factory-gcd' to main trunk

Tue Mar 10 15:44:06 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* factory.template, ftmpl_inst.cc, templates/ftmpl_array.cc,
	  templates/ftmpl_factor.cc, templates/ftmpl_list.cc,
	  templates/ftmp_matrix.cc: #include directives for mac fixed

	* ftmpl_array.h, ftmpl_factor.h, ftmpl_functions.h, ftmpl_list.h,
	  ftmpl_matrix.h: new files.  #include of `templates/ftmpl_xxx.h'
	  changed to include of `ftmpl_xxx.h'.
	* GNUmakefile.in (basefactoryincl): new header files added to
	  distribution

Fri Feb 27 10:24:22 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

    **************** <<< changes in branch `factory-gcd' ****************

	* var_intglobal.cc, var_intglobal.h: files removed (do not belong
	  to this branch!)

	* cf_primetab.h: file removed

	* cf_defs.h (SW_QUOTIENT, SW_FAC_USE_BIG_PRIMES): switches removed

	* cf_linsys.cc (linearSystemSolve, solve, bound determinant2):
	  incorrect respective unused code removed

	* cf_char.cc (setCharacteristic): adapted to new prime generation
	  scheme
	* cf_char.cc (setCharacteristic): previous adaption slightly
	  changed.  The largest small prime is now looked up only once.

	* cf_gcd.cc (gcd_poly_univar0): adapted to new prime generation
	  scheme
	* fac_ezgcd.cc (findBound): adapted to new prime generation
	  scheme
	* cf_linsys.cc (determinant): adapted to prime generation
	  scheme
	* sm_sparsemod.cc (internalSparsemod): adapted to new prime
	  generation scheme
	* fac_univar.cc (choosePrimes): adapted to new prime generation
	  scheme

	* sm_sparsemod.cc (sparsemod): debug output added

	* fac_univar.cc (cf2double): function removed

	* fac_univar.cc (UnivariateQuadraticLift, UnivariateLinearLift):
	  argument `Gamma' removed.  All callers changed.

	* fac_univar.cc (UnivariateQuadraticLift, UnivariateLinearLift): call to
	  `div( CF, CF )' replaced by call to `operator / ( CF, CF )'

Thu Feb 26 17:58:31 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* gcd_pmultiv.h (class CFPrimitiveMultivariateGCD): renamed to
	  `CFPrimitiveMultivariateGcd'.  All references changed.
	  (class CFSubResGCD): renamed to `CFSubResGcd'.  All references
	  changed.

	* gcd_pmultiv.h (class CFPrimitiveMultivariateGCD): does no longer
	  inherit virtual from `CFPrimitiveGcd'
	  (class CFSubResGcd): does no longer inherit from
	  `CFPrimitiveUnivariateGCD'

	* gcd_pmultiv.h (class CFSubResGcd): new method `clone()'

	* gcd_pmultiv.h: new file

	* gcd_pmultiv.cc (CFSubResGcd::execute): bug fix.  Superfluous
	  break removed.
	  (execute): bug fix.  Assertion fixed.

	* gcd_pmultiv.cc: new file

    **************** >>> changes in branch `factory-gcd' ****************

Fri Feb 20 17:41:23 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* GNUmakefile.in (installcf, installmem): `ranlib' libraries after
	  installing them for SUN machines

Tue Feb 10 10:47:04 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* cf_switches.h: doc fix

Mon Feb  9 15:57:07 1998  Ruediger Stobbe  <rstobbe@de.oracle.com>

	* cf_factor.cc (factorize): factorize now handles characteristic
	  0 correct, e.g. rational coefficients and SW_RATIONAL = ON.

Mon Feb  9 11:40:41 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* cf_primetab.cc: new file

Thu Feb  5 16:53:21 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* configure.in (enable_timing, enable_debugoutput): extra timing
	  and debugoutput magic removed
	* GNUmakefile.in (@timingtargets@, @debouttargets@,
	  @debtimingtargets@): extra timing and debugoutput magic removed

Tue Feb  3 14:03:00 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* GNUmakefile.in (ftestm4src): `bextgcd.m4' and `bgcd.m4'
	  removed.  References variable `ftestm4src' instead.

Mon Feb  2 09:55:16 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* cf_chinese.cc (chineseRemainder( const CanonicalForm & ...)):
	  completely rewritten

Fri Jan 30 15:06:26 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* cf_chinese.cc (chineseRemainder): debug output added

	* cf_chinese.cc	(chineseRemainder( const CFArray & ...)): slightly
	  speeded up

	* cf_gcd.cc (iextgcd, igcd): functions removed.  All references
	  replaced by `bextgcd()' and `bgcd()', resp.

	* canonicalform.h (iextgcd): declaration removed

Thu Jan 22 10:38:34 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* int_cf.cc, int_int.cc int_rat.cc (bgcdsame, bgcdcoeff,
	  bextgcdsame, bextgcdcoeff): new methods.  Declarations added.

	* GNUmakefile.in (ftestm4src): `bgcd.m4' and `bextgcd.m4' added to
	  distribution

	* canonicalform.h (mvar): bug fix.  Declared as `Variable mvar
	  (...)'.

	* canonicalform.cc (bgcd, bextgcd): new functions.  Declarations
	  added.

Fri Jan 16 09:08:17 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* cf_switches.h: doc fix

	* cf_algorithm.h (divides): declaration moved from canonicalform.h
	  to cf_algorithm.h

	* cf_switches.cc: doc fix

Tue Jan 13 14:56:42 1998  Olaf Bachmann  <obachman@mathematik.uni-kl.de>

	* configure.in: changed order of library checks (-lm before
	  -lgmp); check for atof in -lm check, to work around a bug on
 	  some linux machines.

Tue Jan  6 11:01:23 1998  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* .cvsignore (stamp-h): entry removed

Wed Dec 17 09:56:25 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* canonicalform.cc (operator ==, operator !=): rewritten and
	  speeded up
	  (operator >): slightly speeded up

	* int_cf.h (class InternalCF): `sign()' declared as const

	* int_poly.cc (comparesame): doc and assertion fix

	* int_int.cc (sqrt, ilog2): assertion fixes

	* int_pp.cc (comparecoeff): assertion fix

	* int_rat.cc (comparesame): doc fix

	* int_cf.cc (InternalCF::sign): method made pure virtual.
	  Declaration adapted.

	* int_cf.cc (taildegree): bug fix.  Did not check whether CO is
	  zero.

	* imm.h (imm_cmp): doc fix

	* canonicalform.cc (CanonicalForm::gcd): method removed.
	  Declaration adapted.

	* canonicalform.cc (degree, taildegree): one more time slightly
	  speeded up.  Hopefully for the last time.

Fri Dec 12 10:06:33 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* imm.h (imm_cmp_p, imm_cmp_gf): comparisons fulfill law of
	  trichitomy

	* readcf.y (yylex): parser reads generator from GF(q) correctly

Tue Dec  9 10:03:07 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* GNUmakefile.in (.PHONY): dependencies `$(srcdir)/winnt/factory.h'
	  and `$(srcdir)/winnt/factoryconf.h' added

	* winnt/factory.h:  automatically created from `factory.template'
	  using `makeheader'

	* winnt/factoryconf.h: automatically created from
	  `factoryconf.template' using `makeheader'

	* GNUmakefile.in (dist): dependencies `$(srcdir)/winnt/factory.h'
	  and `$(srcdir)/winnt/factoryconf.h' added
	  ($(srcdir)/winnt/factory.h): new target
	  ($(srcdir)/winnt/factoryconf.h): new target

	* GNUmakefile.in (distntfile): new variable
	  (distfiles): `$distntfiles' added to distribution
	  (dist): creates directory `winnt/'
	  (distfiles): `bin/makeheader.pl' added to distribution

	* config.h.in (FACTORY_INT64): new define

	* bin/makeheader.pl: new file

	* int_poly.cc (comparecoeff): unused argument `acoeff' removed

Mon Dec  8 18:56:39 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* INSTALL, README: doc fixes for the Windows NT port

Thu Nov 27 21:00:00 1997  Ruediger Stobbe  <rstobbe@de.oracle.com>

	* winnt: new directory containing configuration files for
	  Microsoft Windows NT port using MS Visual C++ 5.0

	* winnt/INSTALL.nt: new file that describes the make process on
	  Windows NT

	* winnt/nt.mak: Makefile for Windoes NT

	* winnt/config.h: preconfigured file for Windows NT

	* winnt/factoryconf.h: for the first time this file is a hand-made
	  version of factoryconf.h for Windows NT

	* winnt/factory.h: for the first time this file is a hand-made
	  version of factory.h for Windows NT

	* config.h.in: new typedef FACTORY_INT64 for 64 bit integer type of various
	  platforms (currently 'long long int' for gcc and '__int64' for
	  MS VC++)

	* readcf.y: malloc.h and memory.h are included in the case of WINNT
	  to have prototypes for alloca and memcpy

	* ffops.h: now uses FACTORY_INT64 instead of long long int

	* ffops.cc: now uses FACTORY_INT64 instead of long long int

	* imm.h: now uses FACTORY_INT64 instead of long long int

	* int_poly.cc: includes strstrea.h instead of strstream.h in the
	  case of WINNT (a typical Microsoft 8.3 problem - its a pity)

	* cf_random.cc: the way const data members were used was not
          conforming to the C++ standard. Now there is a version of
	  RandomGenerator that should run the same way on gcc as well as on
	  CodeWarrior (mac) and MS VC++ (nt) and every other compiler
	  conforming to the C++ standard

	* fac_iterfor.cc: fixed assertion that refers to a variable that
	  was not in the scope. Wondering why gcc compiled it

	* fac_sqrfree.cc: isSqrFreeZ now returns a bool, as declared in
	  the prototype. Again wondering about gcc's behaviour

	* sm_sparsemod.cc: array declaration of varf, varg and schnitt on
	  on the heap instead on the stack because the array size is not
	  a constant. delete [] is called at a suitable place

	* fac_cantzass.h: MS VC++ does not like a default value for a
	  parameter that is a reference (in some sense this is good behaviour)
	  Therefore there are now no default values for the parameter list
	  of FpFactorizeUnivariateCZ

	* fac_cantzass.cc: No reference parameters for FpFactorizeUnivariateCZ

	* cf_factor.cc: FpFactorizeUnivariateCZ is called with full parameter
	  list

	* fac_univar.cc: FpFactorizeUnivariateCZ is called with full parameter
	  list

	* ftmpl_inst.cc: MS VC++ does not like to explicitly instantiate
	  template functions - tmax and tmin are therefore not instatiated in
	  the case of WINNT
	  Anyway it is not clear if this file is needed when using MS VC++
	  since the handling of templates in MS VC++ done in the spirit of
	  AT&T's Cfront compilers which do a more automatic job

	* templates/ftmpl_list.h: MS VC++ wants a forward declaration of
	  template class List<T> and template class ListIterator<T>. This
	  should be no problem for gcc

	* timing.h: changes in the case of WINNT

Fri Nov 21 15:25:27 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* canonicalform.h (class CanonicalForm): inline method hasGcd()
	  removed.

	* int_poly.cc (coeff): explicit cast to CanonicalForm added
	  (coeff): cosmetic change

	* int_rat.cc (comparecoeff): bug fix.  Did not calculate dummy
	  correctly.
	  (comparecoeff): assertion moved into `if' branch

	* int_pp.cc (comparesame): assertion added

	* int_int.cc (comparesame): assertion added

	* int_cf.cc (coeff): explicit cast to CanonicalForm added

	* int_cf.cc (comparecoeff): function made pure virtual.
	  Declarations adapted.
	* int_cf.h (class InternalCF): new pure virtual function
	  comparecoeff()

	* imm.h: doc fix

	* GNUmakefile.in (ftestm4src): fbinops.m4 added to distribution

Thu Nov 20 16:21:51 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* imm.h: functions rereordered

Wed Nov 19 12:21:27 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* gfops.h: functions reordered

	* imm.h (imm_sign): doc fix

	* imm.h: functions reordered

Thu Nov 13 09:10:53 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* cf_chinese.cc (chineseRemainder): `const CF' in arguments
	  changed to `const CF &'.  Declaration adapted.

	* configure.in: doc fix

	* GNUmakefile.in (ftestall): new target
	  (.PHONY): dependencies `ftestall' `ftestclean' `ftestdistclean'
	  added

	* GNUmakefile.in (%.d): dependency generation uses temporary files
	  (clean): removes these temporary files

	* GNUmakefile.in ($(ftestexec)): dependecy `factoryconf.h' added

Wed Nov 12 18:08:51 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* configure.in: check for `GetOpt.h' removed

Thu Nov  6 16:43:17 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* configure.in: check for `libg++.a' commented out

Wed Nov  5 14:48:46 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* GNUmakefile.in (conftest): new target
	  ($(ftestexec), gengftables.o): dependency `conftest' added

	* GNUmakefile.in (gengftables.o): some dependencies removed
	  (gengftables): dependencies slightly changed

	* configure.in: exits with error on absence of libgmp.a or libm.a

	* configure.in: check for `unistd.h' added

	* configure.in: check for `libg++.a' added

Wed Oct 29 12:41:04 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* configure.in: check for `ln -s' added

	* configure.in: checks for header files necessary for the FTE
	  added

	* GNUmakefile.in (LN_S): new variable

	* GNUmakefile.in ($(ftestexec)): new target

	* GNUmakefile.in (ftestsrc, ftestincl, ftestm4src, ftestdistfiles,
	  ftestexec): new variables
	  (distsrc, distincl, distfiles, dist): FTE added to distribution
	  (ftestclean, ftestdistclean): new targets
	  (clean, distclean): dependencies ftestclean and ftestdistclean,
	  resp., added

	* GNUmakefile.in (ftest/GNUmakefile): new target

	* GNUmakefile.in (gengftables): rule slightly simplified

	* test_install.cc (main): calls to `operator<<()' replaced by
	  calls to `printf()'

	* configure.in (M4FLAGS): new output variable
	* configure.in (M4): check for `m4' added

	* configure.in: creates `ftest/GNUmakefile'

Tue Oct 28 14:46:08 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>


    **************** 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* ftmpl_inst.cc: implicit instantiations of `ListItem<T>' 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* canonicalform.cc (mvar, degree): slightly speeded up

Fri Oct 10 10:19:07 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* GNUmakefile.in (%.d): order of dependencies changed

Mon Sep 29 08:11:42 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* cf_assert.h: prints the function now where the assrtion occurred if
	  we are translating with gcc

Thu Sep 25 13:51:01 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* canonicalform.cc (deriv): speeded up

Tue Sep 23 17:24:24 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* int_int.cc: doc fix

	* canonicalform.cc: doc fix

Fri Sep 12 17:25:14 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* cf_gcd.cc (isqrt): function removed

	* canonicalform.cc: doc fix

Wed Sep 10 15:36:15 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* README: doc fix

	* INSTALL: doc fix

	* cf_globals.h: doc fix

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* cf_map.h: superfluous '#include "templates/ftmpl_functions.h"'
	  removed

Mon Aug  4 16:57:27 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* canonicalform.cc (sqrt): doc fix

Fri Aug  1 11:06:58 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* GNUmakefile.in (distfiles): bin/folding.el and bin/fold-docu.el
	  added

Wed Jul 23 09:45:35 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* cf_map.h (class CFMap): references to List<CanonicalForm>
	  replaced by CFList

	* 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  <schmidt@mathematik.uni-kl.de>

	* cf_map.cc (CFList, CFListIterator, MPListIterator): references to
	  List<CanonicalForm>, ListIterator<CanonicalForm>, and
 	  ListIterator<MapPair> replaced by their respective typedefs

	* canonicalform.cc (initCanonicalForm): initialization of switches
	  removed since they are initialized by constructor

	* 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 (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'


    **************** 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* .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  <schmidt@mathematik.uni-kl.de>

	* sm_util.h (REArray): new typedef.  All references to
	  Array<REvaluation> changed to REArray.

	* sm_sparsemod.h: new file

Mon Jul 14 10:00:59 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* GNUmakefile.in: doc fix

Wed Jun 25 10:02:51 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* configure.in (enable_gmp): bug fix
	(CPPFLAGS, LDFLAGS): bug fix

Tue Jun 24 11:15:25 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* config.h.in: doc fix

	* factory.template: doc fix

	* factoryconf.template: doc fix

Fri Jun 20 12:09:00 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* cf_globals.cc: doc fix

Fri Jun  6 09:38:05 1997  Jens Schmidt  <schmidt@mathematik.uni-kl.de>

	* 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  <schmidt@mathematik.uni-kl.de>

	* 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 SING_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 <schmidt@mathematik.uni-kl.de>

	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, cf_assert.h, and timing.h, resp.

	* cf_assert.h (NOASSERT, SING_NDEBUG): #define SING_NDEBUG to switch off
	  assertions replaced by #define NOASSERT.  For sake of backward
	  compatibility SING_NDEBUG works, too.

	* cf_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
	  cf_assert.h/assert.cc to debug.h/debug.cc.  All source files which
 	  need these macros include debug.h.

	* cf_assert.h (PVIRT_VOID, PVIRT_INTCF, PVIRT_BOOL, PVIRT_INT,
	  PVIRT_CHARCC): PVIRT_*-macros moved from int_cf.h to cf_assert.h
	* int_cf.h (PVIRT_VOID, PVIRT_INTCF, PVIRT_BOOL, PVIRT_INT,
	  PVIRT_CHARCC): PVIRT_*-macros moved to cf_assert.h

	* cf_assert.h (__ASSERT, __STICKYASSERT): the preprocessor instead of
 	  fprintf() pastes the message into the format string now

	* cf_assert.h (__ASSERT1, ASSERT1, STICKYASSERT1): new macros

	* cf_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<T>::operator[], Array<T>::operator+=):
	  error messages changed to calls of ASSERT macros
	* templates/list.cc (List<T>::getFirst, List<T>::getLast,
	  ListIterator<T>::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 SING_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 SING_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 <stdio.h>' replaced by '#include <iostream.h>'

	* 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>::T_ptr): new typedef
	* templates/matrix.cc (Matrix<T>::Matrix( int, int ),
	  Matrix<T>::Matrix( Matrix<T> ), Matrix<T>::operator=): 'new (T*)[..]'
	  replaced by 'new T_ptr[..]'

	* cf_iter.h: superfluous '#include <iostream.h>' removed
	* cf_factor.h: superfluous '#include <iostream.h>' removed
	* cf_reval.h: superfluous '#include <iostream.h>' removed
	* memutil.c: superfluous '#include <stdio.h>' removed
	* mmalloc.c: superfluous '#include <stdio.h>' 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
