with text_io; use text_io;
with Standard_Complex_Numbers; use Standard_Complex_Numbers;
with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
with Standard_Complex_Solutions; use Standard_Complex_Solutions;
package PHCPACK is
-- DESCRIPTION :
-- PHC is a numerical general-purpose solver for polynomial systems by
-- homotopy continuation. This package collects all major features of
-- the package as organized according to the four stages of the solver.
-- 1. PRE-PROCESSING : SCALING AND REDUCTION
procedure Equation_Scaling
( file : in file_type; p : in Poly_Sys; s : out Poly_Sys );
-- DESCRIPTION : equation scaling by dividing average coefficient.
-- ON ENTRY :
-- file to write results on, must be opened for output;
-- p a polynomial system.
-- ON RETURN :
-- s a scaled polynomial system.
procedure Linear_Reduction
( file : in file_type; p : in Poly_Sys; r : out Poly_Sys );
-- DESCRIPTION : linear reduction of the coefficient matrix of p.
-- ON ENTRY :
-- file to write results on, must be opened for output;
-- p a polynomial system.
-- ON RETURN :
-- r a polynomial system with reduced coefficient matrix.
-- 2. ROOT COUNTING AND CONSTRUCTION OF START SYSTEM
procedure Total_Degree
( file : in file_type; p : in Poly_Sys; d : out natural );
-- DESCRIPTION : computation of the total degree.
-- ON ENTRY :
-- file to write results on, must be opened for output;
-- p a polynomial system.
-- ON RETURN :
-- d total degree of the system p.
procedure Total_Degree
( file : in file_type; p : in Poly_Sys; d : out natural;
q : out Poly_Sys; qsols : out Solution_List );
-- DESCRIPTION : construction of start system based on total degree.
-- ON ENTRY :
-- file to write results on, must be opened for output;
-- p a polynomial system.
-- ON RETURN :
-- d total degree of the system p.
-- q start system with same total degree as p;
-- qsols solutions of q.
procedure Implicit_Lifting
( file : in file_type; p : in Poly_Sys; mv : out natural );
-- DESCRIPTION : computation of mixed volume by implicit lifting.
procedure Implicit_Lifting
( file : in file_type; p : in Poly_Sys; mv : out natural;
q : out Poly_Sys; qsols : out Solution_List );
-- DESCRIPTION : construction of start system by implicit polyhedral homotopy.
procedure Static_Lifting
( file : in file_type; p : in Poly_Sys; mv : out natural );
-- DESCRIPTION : computation of mixed volume by static lifting.
procedure Static_Lifting
( file : in file_type; p : in Poly_Sys; mv : out natural;
q : out Poly_Sys; qsols : out Solution_List );
-- DESCRIPTION : construction of start system by static polyhedral homotopy.
-- 3. POLYNOMIAL CONTINUATION
procedure Artificial_Parameter_Continuation
( file : in file_type; p,q : in Poly_Sys;
sols : in out Solution_List;
k : in natural := 2;
a : in Complex_Number := Create(1.0);
target : in Complex_Number := Create(1.0) );
-- DESCRIPTION : continuation with the artificial-parameter homotopy
-- h(x,t) = a*(1-t)^k*q(x) + t^k*p(x) = 0, for t going to the target.
-- ON ENTRY :
-- file to write results on, must be opened for output;
-- p target system;
-- q start system;
-- sols start solutions;
-- k smoothing parameter to simulate small steps;
-- a random complex number to ensure regularity;
-- target target value for continuation parameter.
-- ON RETURN :
-- sols solutions for t = target.
procedure Natural_Parameter_Continuation
( file : in file_type; h : in Poly_Sys; k : in natural;
t0,t1 : in Complex_Number; sols : in out Solution_List );
-- DESCRIPTION : continuation with a natural-parameter homotopy.
-- 4. POST-PROCESSING : VALIDATION
procedure Refine_Roots
( file : in file_type; p : in Poly_Sys;
sols : in out Solution_List );
-- DESCRIPTION : refines the roots and puts a report on file.
-- ON ENTRY :
-- file to write results on, must be opened for output;
-- p a polynomial system system;
-- sols approximate solutions.
-- ON RETURN :
-- sols refined solutions.
end PHCPACK;