
                     Version history of the FactInt package
                     ======================================

Changes between FactInt 1.6.3 and FactInt 1.6.2 (November 15, 2019)

 - FactInt is now compatible with HPC-GAP
 - Added LICENSE file
 - The internal function PrettyInfo was replaced by the GAP Info
   instruction, which improves performance in some situations.
 - Minor update of Brent's tables.

Changes between FactInt 1.6.2 and FactInt 1.6.1 (February 17, 2018)

 - Rewritten `FactorsTDNC` to avoid recursion.
 - Some optimisations of loading data tables.

Changes between FactInt 1.6.0 and FactInt 1.6.1 (January 17, 2018)

 - The function `FactorsECM` has been updated to reflect the change that
   `RootInt` no longer accepts non-integral arguments. Now we ensure that
   the 1st argument of `RootInt` is converted to an integer first.

Changes between FactInt 1.5.4 and FactInt 1.6.0 (December 4, 2017):

 - FactInt now makes use of Aurifeuillian factorization of b^k + 1 for bases
   up to 12.

Changes between FactInt 1.5.3 and FactInt 1.5.4 (February 13, 2017):

 - The directory factint/gap/ has been renamed to factint/lib/,
   in order to follow the same naming convention as for the subdirectories
   of the GAP root directory.
 - The file factint/doc/manual.js has been added.

Changes between FactInt 1.5.2 and FactInt 1.5.3 (June 16, 2011):

 - The copy of Brent's tables of factors of integers of the form b^k +/- 1
   has been updated.
 - The CVS revision entries have been removed from the source files.

Changes between FactInt 1.5.1 and FactInt 1.5.2 (September 26, 2007):

 - FactInt now uses a flexible caching mechanism for factorizations of
   small integers. This yields a substantial speedup when many small numbers
   are factored.
 - The copy of Brent's tables of factors of integers of the form b^k +/- 1
   has been updated. There are now roughly 20000 new factors in the database.

Changes between FactInt 1.4.12 and FactInt 1.5.1 (September 20, 2007):

 - The manual has been converted to GAPDoc format.
 - Sometimes, FactInt 1.4.12 unnecessarily triggered the loading of
   autoreadable global variables, which resulted in short delays and some
   wasting of memory. This issue has been resolved.

Changes between FactInt 1.4.11 and FactInt 1.4.12:

 - A problem in the code for formatting the Info output of the ECM routine
   has been fixed. This problem caused an error message if the run time of
   the ECM spent on the first or the second stage of a curve was below 1ms.
   It has been reported by Doug McTavish.

Changes between FactInt 1.4.9 and FactInt 1.4.10:

 - A bug has been fixed which caused an error message when trying to factor
   a large enough integer not of the form d*(10^k-1/9) whose last 4 decimal
   digits were equal. This bug was there since FactInt 1.4.6, and has been
   reported by Sven Reichard.

Changes between FactInt 1.4.8 and FactInt 1.4.9:

 - The `AbstractHTML' in PackageInfo.g has been improved.

Changes between FactInt 1.4.7 and FactInt 1.4.8:

 - Treatment of the special case a^k +/- b^k has been implemented.
 - Relics resp. compatibility with the package loading mechanism
   of GAP 4.3 have been removed.

Changes between FactInt 1.4.6 and FactInt 1.4.7:

 - Caching of whole factorizations and single factors has been implemented.
 - Now the p +/- 1 - routines are by default only used for sufficiently large
   composites.
 - The overhead for small / easy numbers has been reduced further.
 - The function `FactorsTD' has been documented.
 - Synonyms `ECM', `MPQS' and `CFRAC' for `FactorsECM', `FactorsMPQS'
   resp. `FactorsCFRAC' have been added.

Changes between FactInt 1.3.1 and FactInt 1.4.6 (January 21, 2005):

 - The performance of the factoring routine for integers of the
   form b^k +/- 1 has been improved.
 - FactInt now uses Richard P. Brent's tables of factors of integers of the
   form b^k +/- 1. (Only under UNIX.)

   The corresponding code has been contributed by Frank Lübeck.

 - Treatment of the following special cases has been implemented:

   - Two factors p, q such that p/q is close to a fraction with small
     numerator and denominator.
   - k! ± 1.
   - p1 * p2 * p3 * ... * pk +/- 1.
   - Fibonacci numbers.
   - 3^k - 2^k.
   - 11111 ... 11111
   - Factors already available as values of user variables in workspace.

 - An option `cheap' for restricting factorization attempts
   to cheap methods has been added.

Changes between FactInt 1.3 and FactInt 1.3.1:

 - The package has been adapted to the new package loading and updating
   mechanism of GAP 4.4.
 
Changes between FactInt 1.2 and FactInt 1.3 (July 11, 2002):

 - The overhead for factoring very small numbers has been reduced.
 - The synonym `InfoFactInt' for `IntegerFactorizationInfo' has been added.
 - A restriction concerning the number of digits of some argument values
   in Info messages has been removed (this concerns mainly the ECM).
 - The default of the number of curves to be tried by FactorsECM for large
   numbers before invoking the MPQS has been increased.
 - Info levels 4 and 5 for more frequent status messages during
   the sieving process of the MPQS have been introduced.

Changes between FactInt 1.1 and FactInt 1.2 (April 26, 2002):

 - The manual is now also available in PDF and Postscript format.
 - The documentation has been cleaned up typographically.
 - Info messages for factorizations of small integers are now given only
   if InfoLevel(IntegerFactorizationInfo) = 3, to avoid users to be swamped
   with messages on factorizations of numbers like 4 or so if they do not
   want to.
 - The declaration of `IntegerFactorizationInfo' is now in factint.gd,
   as it should.

Changes between FactInt 1.0 and FactInt 1.1:

 - MPQS now uses the fast special-purpose kernel routine
   ADD_TO_LIST_ENTRIES_PLIST_RANGE for the innermost loop of the sieving
   routine. The kernel routine has been implemented in src/listoper.c by
   Steve Linton.

Initial version: 1.0 (July 1999)

