Generalized Bezout numbers and linear-product start systems in PHCv2.4.87

Four types of start systems are implemented, based on total degree,
m-homogeneous, multi-homegenous, and generalized Bezout number.

Release v2.3.07 involved a rewrite of the total degree and linear-product
start systems to allow the jumpstarting of homotopies.  This was made
available in phc -r in release v2.3.16.  New in v2.3.50 is the use of 64-bit
arithmetic in the computation of m-homogeneous Bezout numbers.

In release 2.4.49, code was added to compute the generalized permanent
for a supporting set structure, with maximum bipartite matching.
The formal root count based on a set structure in phc -r is then
computed much faster than with the previous permanent computation.

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

------------------------------------------------------------------------------
file name                          : short description
------------------------------------------------------------------------------
lexicographic_root_enumeration     : lexicographic enumeration of roots
total_degree_start_systems         : start systems based on total degree
test_start_systems                 : test on total-degree based start systems
ts_startsys                        : calls the main test on start systems
------------------------------------------------------------------------------
sets_of_unknowns                   : set of unknowns of polynomials
sets_of_unknowns_io                : input/output for sets of unknowns
sets_of_unknowns_strings           : string representations of sets
partitions_of_sets_of_unknowns     : partitions of sets of unknowns
partitions_of_sets_of_unknowns_io  : input/output for partitions
partitions_of_sets_strings         : string representations of partitions
ts_strpart                         : tests on sets and partitions strings
degrees_in_sets_of_unknowns        : compute degrees and degree tables
m_homogeneous_bezout_numbers       : calculation of m-homogeneous bounds
ts_permanent                       : simple test program to seek for bug
standard_complex_poly_lists        : lists of polynomials for products
standard_complex_poly_lists_io     : i/o for products of polynomials
standard_complex_prod_systems      : systems of products of polynomials
standard_complex_prod_systems_io   : i/o for systems of product polynomials
standard_linear_product_system     : systems of products of hyperplanes
dobldobl_linear_product_system     : double double products of hyperplanes
quaddobl_linear_product_system     : quad double products of hyperplanes
standard_linear_product_system_io  : input/output for product systems
m_homogeneous_permanent_factors    : solving m-homogeneous start systems
ts_permstar                        : mirroring permanent computations
m_homogeneous_start_systems        : creation of m-homogeneous start systems
interpolating_homotopies           : homotopies based on interpolation
interpolating_homotopies_driver    : driver for interpolating homotopies
main_m_homogenization              : main interactive m-homogenization
ts_mainmhom                        : calls the main m-homogenization
------------------------------------------------------------------------------
generate_unions                    : all unions of k numbers from a range
degree_structure                   : model for multi-homogeneous structure
multi_homogeneous_start_systems    : construct multi-homogeneous start systems
main_multi_homogenization          : main procedure for multi-homogenization
ts_mainmuho                        : calls the main multi-homogenization
------------------------------------------------------------------------------
pivot_selection                    : algorithms for pivot selection
test_pivot_selection               : tests pivot selection algorithms
ts_pivsel                          : calls the main test on pivot selection
------------------------------------------------------------------------------
set_structure                      : model of general degree structure
set_structure_io                   : input/output of set structures
set_structure_strings              : string representations of set structures
supporting_set_structure           : does set structure support polynomials?
degree_sets_tables                 : generalized permanents
degree_sets_tables_io              : output of degree sets tables
random_product_start_systems       : construct random linear-product systems
main_set_structures                : main procedure for set structures
ts_strset                          : test on set structures as strings
ts_mainsets                        : calls the main for set structures
test_product_systems               : test on jumpstarting product systems
ts_prodsys                         : calls the main test on product systems
------------------------------------------------------------------------------
