[BACK]Return to READ_ME CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Math_Lib / Polynomials

File: [local] / OpenXM_contrib / PHC / Ada / Math_Lib / Polynomials / READ_ME (download)

Revision 1.1.1.1 (vendor branch), Sun Oct 29 17:45:26 2000 UTC (23 years, 7 months ago) by maekawa
Branch: PHC, MAIN
CVS Tags: v2, maekawa-ipv6, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, HEAD
Changes since 1.1: +0 -0 lines

Import the second public release of PHCpack.

OKed by Jan Verschelde.

Multivariate polynomials and polynomial systems over rings/fields in PHCv2.

New in this release is the availability of multi-precision numbers.
The data structures are entirely redefined using Ada 95 concepts.

This library is organized in three parts:
1) generic packages: polynomials and systems
2) instantiations
3) utilities

--------------------------------------------------------------------------------
file name                         : short description
--------------------------------------------------------------------------------
generic_lists                     : lists of items
graded_lexicographic_order        : defines the order of monomials
generic_polynomials               : generic polynomials in several variables
generic_laurent_polynomials       : generic polynomials with integer exponents
generic_polynomial_functions      : evaluation of polynomials
generic_laur_poly_functions       : evaluation of Laurent polynomials
generic_polynomial_systems        : systems of polynomials
generic_laur_poly_systems         : systems of Laurent polynomials
generic_poly_system_functions     : evaluation of systems of polynomials
generic_laur_system_functions     : evaluation of Laurent polynomial systems
generic_jacobian_matrices         : Jacobian matrices of polynomial systems
generic_laur_jaco_matrices        : Jacobian matrices of Laurent systems
symbol_table                      : management of table of symbols
symbol_table_io                   : input/output of symbols
--------------------------------------------------------------------------------
standard_complex_polynomials      : polynomials over standard complex numbers
standard_complex_polynomials_io   : input/output of complex polynomials
standard_complex_laur_polys       : Laurent polynomials with standard complex
standard_complex_poly_ring        : abstract_ring(standard complex poly)
standard_complex_poly_ring_io     : abstract_ring_io(standard complex poly)
standard_complex_poly_vectors     : generic_vectors(standard complex poly)
standard_complex_poly_vectors_io  : generic_vectors_io(standard complex poly)
standard_complex_poly_matrices    : generic_matrices(standard complex poly)
standard_complex_poly_matrices_io : generic_matrices_io(standard complex poly)
standard_complex_poly_functions   : generic_polynomial_functions instantiated
standard_complex_laur_functions   : generic_laur_poly_functions instantiated
standard_complex_poly_systems     : generic_polynomial_systems instantiated
standard_complex_poly_systems_io  : input/output for complex polynomial systems
standard_complex_laur_systems     : generic_laur_poly_systems instantiated
standard_complex_poly_sysfun      : generic_poly_system_function instantiated
standard_complex_jaco_matrices    : generic_jacobian_matrices instantiated
standard_complex_poly_randomizers : randomize coefficients of polynomials
standard_complex_laur_randomizers : randomize coefficients of polynomials
standard_complex_substitutors     : substitute equations into polynomials
standard_poly_laur_convertors     : convert polynomials to Laurent polynomials
standard_laur_poly_convertors     : convert Laurent polynomials to polynomials
multprec_complex_polynomials      : polynomials over multiprec complex numbers
multprec_complex_laur_polys       : Laurent polynomials over multprec complex
multprec_complex_poly_functions   : evaluating multprec complex polynomials
multprec_complex_poly_systems     : systems of multiprec complex polynomials
multprec_complex_poly_sysfun      : evaluating multprec complex poly systems
multprec_complex_jaco_matrices    : Jacobian matrices of multiprec systems
multprec_complex_laur_systems     : multi-precision Laurent systems
exponent_vectors                  : management of exponents of a system
standard_evaluator_packages       : create package to evaluate systems
matrix_indeterminates             : manipulate symbols for xij
--------------------------------------------------------------------------------
ts_poly                           : test on polynomials and polynomial systems
ts_jaco                           : test on Jacobian matrices
ts_evaline                        : calls the evaluator package
--------------------------------------------------------------------------------
Three different representations of polynomials are implemented:
as a list of terms, a nested Horner scheme with fixed coefficients
and with parametric coefficients.
The latter provides an efficient way to evaluate coefficient homotopies.

The i/o-routines provide readable formats in symbolic form.

We can take advantage of the way vectors and matrices have been created:
a polynomial system is an instance of a polynomial vector and
a matrix with all partial derivatives is an instance of a polynomial matrix.

The package generic_polynomials allow to define polynomial rings.
The package generic_polynomial_functions is used to evaluate polynomials.
In version one of PHC both the ring operations and evaluation routines
were united in one large package.  The current organization has the benefit
of separating evaluation from the definitions of vectors and matrices.
The evaluation by means of a function is also supported.

Since functions need separate data structures, separate packages are used,
instead of working with child units that could also have been used to create
a different view on the same data structure.

Also the polynomial systems have been implemented separately.

Jacobian matrices are implemented by means of generics.  Their main usage
is towards evaluation.  Therefore, the type to represent a Jacobian matrix
is just a two-dimensional array of polynomials.  To perform algebraic
manipulations, one should convert to the matrix type of the package matrices
instantiated with the polynomial ring.

Since the different ways to evaluate polynomials use different orders of
computation, the results may differ when mixed-precision arithmetic is used.

The Laurent polynomials only differ from the usual polynomials by the
type definition of the exponents and require the instantiation of a field
for evaluation.

wc *adb counts 7032 lines of Ada code