The MixedVol Algorithm for fast mixed volume computation in PHCv2.4.85

This directory is the main feature in release v2.3.13 of PHCpack.
Since v2.3.31, support for stable mixed volumes was added.

This directory contains a translation of the C software "MixedVol" to 
compute mixed volumes fast, derived from the code "MixedVol", described in

  Tangan Gao, T. Y. Li, Mengnien Wu:
  "Algorithm 846: MixedVol: a software package for mixed-volume computation"
  ACM Transactions on Mathematical Software (TOMS), 31(4):555-560, 2005.

Their "ReadMe" file in the distribution of the software contains the following
lines (showing that Xing Li contributed as well):
"MixedVol: Polynomial system mixed volume calculation program.
 version 1.0 Copyright (C) 2003  Tangan Gao, T. Y. Li, Xing Li, and Mengnien Wu.
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License as published by
 the Free Software Foundation; either version 2 of the License, or
 (at your option) any later version."

The conversion of the source code from C++ down to C was done by Yan Zhuang.

The program "ts_mv2c.adb" calls the C software "MixedVol" via
the intermediate interface program mv.c.

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

------------------------------------------------------------------------------
file name                        : short description
------------------------------------------------------------------------------
ts_convsub.adb                   : converting output into phc format
------------------------------------------------------------------------------
simplex_pivoting                 : pivoting operations in simplex algorithm
prepare_for_mv1                  : C definition of the preprocessing code
prepare_for_mv                   : preprocessing for mixed-volume computation
cell_stack1                      : C definition of the cell stack
cell_stack                       : stack of mixed cells
mixed_volume1                    : C main function
mixed_volume                     : main routine to compute the mixed volume
relation_table1                  : C definition of the relation table
relation_table                   : edges on lower hull of Minkowski sums
one_level_lp1                    : C definition of one level LP tests
one_level_lp                     : performs LP tests at one level
form_lp1                         : C definition of LP problems
form_lp                          : defines the LP problems at all levels
index_tree_lp1                   : C definition of trees of LP problems
index_tree_lp                    : data + operations on trees of LP problems
zero_index_tree1                 : C definition of the zero index tree
zero_index_tree                  : case of level 0 at tree of LP problems
------------------------------------------------------------------------------
mv1                              : C program to compute the mixed volume
mv                               : Ada tranlation of the program mv
ts_mv2c.adb                      : calls the C program mv
ts_mv.adb                        : calls the Ada translation of mv
------------------------------------------------------------------------------
MixedVol_Algorithm               : interface to MixedVol for use in phc
ts_mva                           : standalone test on MixedVol_Algorithm
------------------------------------------------------------------------------
