Annotation of OpenXM_contrib/PHC/Ada/Math_Lib/Polynomials/READ_ME, Revision 1.1.1.1
1.1 maekawa 1: Multivariate polynomials and polynomial systems over rings/fields in PHCv2.
2:
3: New in this release is the availability of multi-precision numbers.
4: The data structures are entirely redefined using Ada 95 concepts.
5:
6: This library is organized in three parts:
7: 1) generic packages: polynomials and systems
8: 2) instantiations
9: 3) utilities
10:
11: --------------------------------------------------------------------------------
12: file name : short description
13: --------------------------------------------------------------------------------
14: generic_lists : lists of items
15: graded_lexicographic_order : defines the order of monomials
16: generic_polynomials : generic polynomials in several variables
17: generic_laurent_polynomials : generic polynomials with integer exponents
18: generic_polynomial_functions : evaluation of polynomials
19: generic_laur_poly_functions : evaluation of Laurent polynomials
20: generic_polynomial_systems : systems of polynomials
21: generic_laur_poly_systems : systems of Laurent polynomials
22: generic_poly_system_functions : evaluation of systems of polynomials
23: generic_laur_system_functions : evaluation of Laurent polynomial systems
24: generic_jacobian_matrices : Jacobian matrices of polynomial systems
25: generic_laur_jaco_matrices : Jacobian matrices of Laurent systems
26: symbol_table : management of table of symbols
27: symbol_table_io : input/output of symbols
28: --------------------------------------------------------------------------------
29: standard_complex_polynomials : polynomials over standard complex numbers
30: standard_complex_polynomials_io : input/output of complex polynomials
31: standard_complex_laur_polys : Laurent polynomials with standard complex
32: standard_complex_poly_ring : abstract_ring(standard complex poly)
33: standard_complex_poly_ring_io : abstract_ring_io(standard complex poly)
34: standard_complex_poly_vectors : generic_vectors(standard complex poly)
35: standard_complex_poly_vectors_io : generic_vectors_io(standard complex poly)
36: standard_complex_poly_matrices : generic_matrices(standard complex poly)
37: standard_complex_poly_matrices_io : generic_matrices_io(standard complex poly)
38: standard_complex_poly_functions : generic_polynomial_functions instantiated
39: standard_complex_laur_functions : generic_laur_poly_functions instantiated
40: standard_complex_poly_systems : generic_polynomial_systems instantiated
41: standard_complex_poly_systems_io : input/output for complex polynomial systems
42: standard_complex_laur_systems : generic_laur_poly_systems instantiated
43: standard_complex_poly_sysfun : generic_poly_system_function instantiated
44: standard_complex_jaco_matrices : generic_jacobian_matrices instantiated
45: standard_complex_poly_randomizers : randomize coefficients of polynomials
46: standard_complex_laur_randomizers : randomize coefficients of polynomials
47: standard_complex_substitutors : substitute equations into polynomials
48: standard_poly_laur_convertors : convert polynomials to Laurent polynomials
49: standard_laur_poly_convertors : convert Laurent polynomials to polynomials
50: multprec_complex_polynomials : polynomials over multiprec complex numbers
51: multprec_complex_laur_polys : Laurent polynomials over multprec complex
52: multprec_complex_poly_functions : evaluating multprec complex polynomials
53: multprec_complex_poly_systems : systems of multiprec complex polynomials
54: multprec_complex_poly_sysfun : evaluating multprec complex poly systems
55: multprec_complex_jaco_matrices : Jacobian matrices of multiprec systems
56: multprec_complex_laur_systems : multi-precision Laurent systems
57: exponent_vectors : management of exponents of a system
58: standard_evaluator_packages : create package to evaluate systems
59: matrix_indeterminates : manipulate symbols for xij
60: --------------------------------------------------------------------------------
61: ts_poly : test on polynomials and polynomial systems
62: ts_jaco : test on Jacobian matrices
63: ts_evaline : calls the evaluator package
64: --------------------------------------------------------------------------------
65: Three different representations of polynomials are implemented:
66: as a list of terms, a nested Horner scheme with fixed coefficients
67: and with parametric coefficients.
68: The latter provides an efficient way to evaluate coefficient homotopies.
69:
70: The i/o-routines provide readable formats in symbolic form.
71:
72: We can take advantage of the way vectors and matrices have been created:
73: a polynomial system is an instance of a polynomial vector and
74: a matrix with all partial derivatives is an instance of a polynomial matrix.
75:
76: The package generic_polynomials allow to define polynomial rings.
77: The package generic_polynomial_functions is used to evaluate polynomials.
78: In version one of PHC both the ring operations and evaluation routines
79: were united in one large package. The current organization has the benefit
80: of separating evaluation from the definitions of vectors and matrices.
81: The evaluation by means of a function is also supported.
82:
83: Since functions need separate data structures, separate packages are used,
84: instead of working with child units that could also have been used to create
85: a different view on the same data structure.
86:
87: Also the polynomial systems have been implemented separately.
88:
89: Jacobian matrices are implemented by means of generics. Their main usage
90: is towards evaluation. Therefore, the type to represent a Jacobian matrix
91: is just a two-dimensional array of polynomials. To perform algebraic
92: manipulations, one should convert to the matrix type of the package matrices
93: instantiated with the polynomial ring.
94:
95: Since the different ways to evaluate polynomials use different orders of
96: computation, the results may differ when mixed-precision arithmetic is used.
97:
98: The Laurent polynomials only differ from the usual polynomials by the
99: type definition of the exponents and require the instantiation of a field
100: for evaluation.
101:
102: wc *adb counts 7032 lines of Ada code
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>