Mathematical library in PHCpack version 2.4.85

The mathematical library contains general tools that are not specific
for polynomial homotopy continuation.

Run "gprbuild math_lib.gpr" to make all test programs.
On windows, type "gprbuild math_lib.gpr -Xos=windows"
at the PowerShell prompt.
The "gprclean math_lib.gpr" removes all files created by gprbuild.

New in release 2 are the multiprecision numbers and the use of Ada 95.
Release 2.1 has faster multiprecision arithmetic and linear programming.
Only minor changes are made in release 2.2.  Changes in version 2.3 are
a singular value decomposition with standard and multiprecision floats.
Vectors became a separate directory in v2.3.33.
Use of 64-bit integer arithmetic was introduced in v2.3.49.
In v2.3.55, a new directory QD (quad doubles) was added.
New in v2.3.56 is the directory Tasking for multithreaded linear algebra
and polynomial evaluation.  The directory Functions was added in v2.3.69
for the new polynomial evaluation and differentiation routines.
In v2.3.71, code from Vectors and Matrices was redistributed into the 
directories Divisors and Reduction.  Tasking was moved in version 2.3.78.
The latest major change in 2.3.98 is a separate directory Circuits for the
code for algorithmic differentation.  The directory Series was added in
version 2.4.21 and improved with linearization in version 2.3.23.
In 2.4.63, the directory AD was added.  The main change in v2.4.80
was the introduction of multiple double arithmetic, with code generated 
by the CAMPARY software, with extensions of the QD library.
The Laurent folder with code for Laurent series was added in v2.4.85.

  Math_Lib             : 1. general mathematical library
     |-- Numbers       : 1.1. number representations
     |-- QD            : 1.2. multiple double precision
     |-- Vectors       : 1.3. vectors and vectors of vectors
     |-- Matrices      : 1.4. matrices and linear-system solvers
     |-- Divisors      : 1.5. common divisors, integer linear algebra
     |-- Reduction     : 1.6. row reduction, numerical linear algebra
     |-- Polynomials   : 1.7. multivariate polynomial systems
     |-- Functions     : 1.8. evaluation and differentiation
     |-- Supports      : 1.9. support sets and linear programming
     |-- Circuits      : 1.A. circuits for algorithmic differentiation
     |-- Series        : 1.B. manipulating truncated power series
     |-- Laurent       : 1.C. series with integer leading exponents
     |-- AD            : 1.D. algorithmic differentiation of the Path library
     

The directory Numbers specifies the coefficient rings and contains
definitions of floating-point and complex numbers.
The coefficient rings are implemented by means of packages that can
be used for instantiating generic packages.

Another way to extend the precision is to work directly with floats,
as done by the QD-2.3.9 library, provided by the QD directory.
Work with Genady Yoffe led to this directory in PHCpack.

The directory Vectors provides definitions of data types of
vectors of natural, integer, real and complex numbers.
Matrices offers a generic package matrices, and various instantions.

Solvers of linear systems with integer linear algebra 
are provided in the Divisors directory.
Numerical linear algebra tools are in the directory Reduction.

The directory Polynomials contains the packages to deal with
multivariate polynomials and systems, in an algebraic way.
The functional view of polynomials is in the directory Functions,
implementing an algorithm developed jointly with Genady Yoffe.

To deal with support sets and polytopes, linear-programming
methods have been implemented in the directory Supports.
