
1996-09-08
==========

Functional changes
------------------

* New include file <cl_numtheory.h>, containing number theoretic functions,
  for now only the Jacobi symbol.

Algorithmic changes
-------------------

* Speed up squaring of large numbers by 30%.

* Speed up division of large numbers by use of Newton's algorithm. The
  improvement is noticeable for numbers with at least about 1000 words =
  32000 bits = 10000 decimal digits.

* Speed up the binary-to-decimal conversion of large numbers by use of
  a divide-and-conquer method. The improvement is noticeable for numbers
  of at least 1250 words = 40000 bits = 12000 decimal digits.

* Fixed a bug: The functions `cl_boolean minusp (const type&)' and
  `cl_boolean zerop (const type&)' were missing for type=cl_I and type=cl_RA.

* Fixed a bug: The function `cl_boolean logtest (const cl_I&, const cl_I&)'
  didn't work correctly if both arguments were bignums.

* Fixed a bug: The function `cl_I mod (const cl_I&, const cl_I&)', when called
  as `mod(-n*m,m)' (n>0), returned m instead of 0.

* Fixed a bug: The function `uintL power2p (const cl_I&)' returned wrong
  values for arguments x = 2^n, n >= 29.

Implementation changes
----------------------

* Speed up CLN by using the low-level addition/subtraction, shift and
  multiplication loops from GNU gmp-2.0.2.

* Fixed a severe reference counting bug in the constructors
  `type::type (const long)' and `type::type (const unsigned long)'
  for type=cl_number, type=cl_N, type=cl_RA, type=cl_I that most often
  caused a core dump.

* CLN's word sequences can be chosen to be stored big-endian in memory
  (like it was up to now) or little-endian (needed for interfacing to GMP).


1996-05-20
==========

Functional changes
------------------

* New include file <cl_timing.h>, contains timing facilities.

Algorithmic changes
-------------------

* Speed up the multiplication of large numbers by use of an FFT based
  algorithm (Schnhage-Strassen). The improvement is noticeable when both
  factors have at least 1250 words = 40000 bits = 12000 decimal digits.

* Speed up the functions `cl_I gcd (const cl_I&, const cl_I&)' and
  `cl_I xgcd (const cl_I&, const cl_I&, cl_I*, cl_I*)' by a factor
  of 1.5. Simple trick.

* Speed up the function `cl_boolean sqrtp (const cl_I&, cl_I*)' using a
  trick from Henri Cohen.

* Fixed an endless loop in the function `uint32 gcd (uint32, uint32)'
  which occurred when one of the arguments is zero.

* Fixed an endless loop in the function `cl_I factorial (uintL)'.

Implementation changes
----------------------

* <cl_io.h> now uses iostreams by default instead of stdio FILE pointers.
  (Reported by Tito Flagella.)

* Fixed linking error when compiling without -O.
  (Reported by Tito Flagella.)

* Fixed syntax error in <cl_input.h>.
  (Reported by Tito Flagella.)

* Fixed syntax errors in src/cl_DS.h and src/cl_FF_plus.h.
  (Reported by Marcus Daniels.)

* More portability fixes.

* Configuration now supports the --srcdir option.
  (Reported by Marcus Daniels.)


1996-01-03
==========

* Compiles well on Sparc, using gcc.

* Mail to beta testers.


1995-12-06
==========

* Compiles well on Linux, using gcc.

