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 * interface to NTL * many fixes Wed Aug 22 16:25:16 MET DST 2001 Hans Schoenemann * Version 1.3c: some utility functions for libfac * search for main var in factorize (experimental) 2000-09-02 Olaf Bachmann * configure.in, etc: support for omalloc 2000-08-04 Olaf Bachmann * 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 * 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 * fac_ezgcd.cc (ezgcd_specialcase): bug fix (???). See comments in the file for more information. Tue Jul 7 18:34:39 1998 Jens Schmidt * GNUmakefile.in (ftestm4src): `extgcd.m4' added to distribution Wed Jul 1 10:57:53 1998 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * 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 * ftmpl_factor.h (template class Factor): `operator == ( const Factor &, const Factor &)' removed as friend and added as extra operator Wed Jun 03 14:47:41 1998 * timing.h, readcf.y, int_poly.cc, imm.h: test on WINNT disabled with gcc Mon May 11 11:36:22 1998 Jens Schmidt * config.h.in (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 * .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 * fac_univar.cc (UnivariateQuadraticLift): type for `log()' must be float, hence constant `2' replaced by `2.0' * config.h.in (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 * 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 **************** <<< 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 * 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 * 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 * 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 * 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 **************** <<< 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 * 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 * GNUmakefile.in (installcf, installmem): `ranlib' libraries after installing them for SUN machines Tue Feb 10 10:47:04 1998 Jens Schmidt * cf_switches.h: doc fix Mon Feb 9 15:57:07 1998 Ruediger Stobbe * 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 * cf_primetab.cc: new file Thu Feb 5 16:53:21 1998 Jens Schmidt * 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 * GNUmakefile.in (ftestm4src): `bextgcd.m4' and `bgcd.m4' removed. References variable `ftestm4src' instead. Mon Feb 2 09:55:16 1998 Jens Schmidt * cf_chinese.cc (chineseRemainder( const CanonicalForm & ...)): completely rewritten Fri Jan 30 15:06:26 1998 Jens Schmidt * 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 * 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 * 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 * 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 * .cvsignore (stamp-h): entry removed Wed Dec 17 09:56:25 1997 Jens Schmidt * 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 * 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 * 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 (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 * INSTALL, README: doc fixes for the Windows NT port Thu Nov 27 21:00:00 1997 Ruediger Stobbe * 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 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 INT64 instead of long long int * ffops.cc: now uses INT64 instead of long long int * imm.h: now uses 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 and template class ListIterator. This should be no problem for gcc * timing.h: changes in the case of WINNT Fri Nov 21 15:25:27 1997 Jens Schmidt * 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 * imm.h: functions rereordered Wed Nov 19 12:21:27 1997 Jens Schmidt * gfops.h: functions reordered * imm.h (imm_sign): doc fix * imm.h: functions reordered Thu Nov 13 09:10:53 1997 Jens Schmidt * 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 * configure.in: check for `GetOpt.h' removed Thu Nov 6 16:43:17 1997 Jens Schmidt * configure.in: check for `libg++.a' commented out Wed Nov 5 14:48:46 1997 Jens Schmidt * 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 * 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 **************** 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 * cf_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 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 * 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: (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 * 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 (class CFMap): references to List 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 * 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: 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 * 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 * .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_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: 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 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 (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 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, cf_assert.h, and timing.h, resp. * cf_assert.h (NOASSERT, NDEBUG): #define NDEBUG to switch off assertions replaced by #define NOASSERT. For sake of backward compatibility 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::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