with text_io; use text_io;
with Standard_Integer_Vectors;
with Standard_Floating_Vectors;
with Standard_Complex_VecVecs;
with Standard_Complex_Laur_Systems; use Standard_Complex_Laur_Systems;
with Standard_Complex_Laur_SysFun; use Standard_Complex_Laur_SysFun;
with Standard_Complex_Laur_Jacomats; use Standard_Complex_Laur_Jacomats;
with Exponent_Vectors; use Exponent_Vectors;
with Arrays_of_Floating_Vector_Lists; use Arrays_of_Floating_Vector_Lists;
with Standard_Complex_Solutions; use Standard_Complex_Solutions;
with Floating_Mixed_Subdivisions; use Floating_Mixed_Subdivisions;
package Floating_Polyhedral_Continuation is
-- DESCRIPTION :
-- This package implements polyhedral homotopy continuation methods,
-- based on mixed subdivision induced by floating-point lifting.
-- The continuation is organized in three layers:
-- 1. inner normal, tracking of paths for one poly
-- 2. mixed cell, recursion is needed when the cell is not fine;
-- 3. mixed subdivision, for all cells in the subdivision.
-- Each layer has two versions: a silent and a reporting version.
-- FIRST LAYER : polyhedral continuation for one transformation.
procedure Mixed_Continuation
( mix : in Standard_Integer_Vectors.Vector;
lifted : in Array_of_Lists; h : in Eval_Coeff_Laur_Sys;
c : in Standard_Complex_VecVecs.VecVec;
e : in Exponent_Vectors_Array;
j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
normal : in Standard_Floating_Vectors.Vector;
sols : in out Solution_List );
procedure Mixed_Continuation
( file : in file_type;
mix : in Standard_Integer_Vectors.Vector;
lifted : in Array_of_Lists; h : in Eval_Coeff_Laur_Sys;
c : in Standard_Complex_VecVecs.VecVec;
e : in Exponent_Vectors_Array;
j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
normal : in Standard_Floating_Vectors.Vector;
sols : in out Solution_List );
-- DESCRIPTION : polyhedral continuation with coefficient homotopy.
-- ON ENTRY :
-- file file to write intermediate results on;
-- mix type of mixture;
-- lifted lifted supports of polynomial system, in original order;
-- h coefficient homotopy;
-- c coefficients of homotopy;
-- e the exponent vectors of the unlifted system;
-- j coefficient Jacobian matrix;
-- m multiplication factors in coefficient Jacobian matrix;
-- normal normal to a mixed cell;
-- sols start solutions of the subsystem which corresponds
-- with the mixed cell with given inner normal.
-- ON RETURN :
-- sols the solutions of p, which correspond to one mixed cell.
-- SECOND LAYER : polyhedral continuaton for one mixed cell.
procedure Mixed_Solve
( p : in Laur_Sys; lifted : in Array_of_Lists;
h : in Eval_Coeff_Laur_Sys;
c : in Standard_Complex_VecVecs.VecVec;
e : in Exponent_Vectors_Array;
j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
mix : in Standard_Integer_Vectors.Vector;
mic : in Mixed_Cell;
sols,sols_last : in out Solution_List );
procedure Mixed_Solve
( file : in file_type;
p : in Laur_Sys; lifted : in Array_of_Lists;
h : in Eval_Coeff_Laur_Sys;
c : in Standard_Complex_VecVecs.VecVec;
e : in Exponent_Vectors_Array;
j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
mix : in Standard_Integer_Vectors.Vector;
mic : in Mixed_Cell;
sols,sols_last : in out Solution_List );
-- DESCRIPTION :
-- Polyhedral coefficient-homotopy continuation for one mixed cell.
-- REQUIRED : polynomials in p must be ordered according to mix.
-- ON ENTRY :
-- file a file to write intermediate results on;
-- p non-lifted Laurent polynomial system;
-- lifted lifted supports, with original order of points;
-- h coefficient homotopy;
-- c coefficients of homotopy;
-- e the exponent vectors of the unlifted system;
-- j coefficient Jacobian matrix;
-- m multiplication factors in coefficient Jacobian matrix;
-- mix type of mixture;
-- mic a mixed cell.
-- ON RETURN :
-- sols the solution list of p;
-- sols_last pointer to last element of the list sols.
-- THIRD LAYER : polyhedral continuation for a mixed subdivision.
procedure Mixed_Solve
( p : in Laur_Sys; lifted : in Array_of_Lists;
h : in Eval_Coeff_Laur_Sys;
c : in Standard_Complex_VecVecs.VecVec;
e : in Exponent_Vectors_Array;
j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
mix : in Standard_Integer_Vectors.Vector;
mixsub : in Mixed_Subdivision;
sols : in out Solution_List );
procedure Mixed_Solve
( file : in file_type;
p : in Laur_Sys; lifted : in Array_of_Lists;
h : in Eval_Coeff_Laur_Sys;
c : in Standard_Complex_VecVecs.VecVec;
e : in Exponent_Vectors_Array;
j : in Eval_Coeff_Jaco_Mat; m : in Mult_Factors;
mix : in Standard_Integer_Vectors.Vector;
mixsub : in Mixed_Subdivision;
sols : in out Solution_List );
-- DESCRIPTION :
-- Polyhedral coefficient-homotopy continuation for a mixed subdivision.
-- REQUIRED : polynomials in p must be ordered according to mix.
-- ON ENTRY :
-- file a file to write intermediate results on;
-- p non-lifted Laurent polynomial system;
-- lifted lifted supports, in original order;
-- h coefficient homotopy;
-- c coefficients of homotopy;
-- e the exponent vectors of the unlifted system;
-- j coefficient Jacobian matrix;
-- m multiplication factors in coefficient Jacobian matrix;
-- mix type of mixture;
-- mixsub a collection of mixed cells.
-- ON RETURN :
-- sols the solution list of p.
end Floating_Polyhedral_Continuation;