File: [local] / OpenXM_contrib / PHC / Ada / Root_Counts / Stalift / integer_lifting_utilities.ads (download)
Revision 1.1.1.1 (vendor branch), Sun Oct 29 17:45:31 2000 UTC (23 years, 10 months ago) by maekawa
Branch: PHC, MAIN
CVS Tags: v2, maekawa-ipv6, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, HEAD Changes since 1.1: +0 -0
lines
Import the second public release of PHCpack.
OKed by Jan Verschelde.
|
with Standard_Integer_Vectors; use Standard_Integer_Vectors;
with Standard_Complex_Laur_Polys; use Standard_Complex_Laur_Polys;
with Standard_Complex_Laur_Systems; use Standard_Complex_Laur_Systems;
with Lists_of_Integer_Vectors; use Lists_of_Integer_Vectors;
with Integer_Mixed_Subdivisions; use Integer_Mixed_Subdivisions;
with Arrays_of_Integer_Vector_Lists; use Arrays_of_Integer_Vector_Lists;
package Integer_Lifting_Utilities is
-- DESCRIPTION :
-- This package provides some utilities for dealing with lifting functions.
function Adaptive_Lifting ( l : Array_of_Lists ) return Vector;
-- DESCRIPTION :
-- Returns upper bounds for a random lifting, depending on the lengths
-- of the lists in l.
-- function Select_Subsystem ( p : Laur_Sys; mix : Vector; mic : Mixed_Cell )
-- return Laur_Sys;
-- DESCRIPTION :
-- Given a Laurent polynomial system and a mixed cell,
-- the corresponding subsystem will be returned.
-- ON ENTRY :
-- p a Laurent polynomial system;
-- mix type of mixture: occurencies of the supports;
-- mic a mixed cell.
-- REQUIRED :
-- The polynomials in p must be ordered according to the type of mixture.
function Perform_Lifting
( n : natural; l : List; p : Poly ) return Poly;
function Perform_Lifting
( n : natural; mix : Vector; lifted : Array_of_Lists;
p : Laur_Sys ) return Laur_Sys;
-- DESCRIPTION :
-- Construction of the polyhedral homotopy, given the lifted supports.
-- The p will be lifted according to the lifted points, i.e. each
-- monomial whose exponent vector corresponds to a vector in the
-- lifted points (except for the last entry of course), will be
-- extended with an additional unknown, with as exponent, the
-- lifting value of that vector.
function Copy_Lifting ( lifted : List; pt : Link_to_Vector )
return Link_to_Vector;
-- DESCRIPTION :
-- Searches the corresponding point in the list lifted and returns
-- the lifted point. If the corresponding point has not been found,
-- then the original point pt will be returned.
function Copy_Lifting ( lifted,pts : List ) return List;
-- DESCRIPTION :
-- Copies the lifting on the points lifted to the points in pts,
-- i.e., each point in pts will get the same lifting as the corresponding
-- lifted point in the list lifted.
procedure Search_Lifting ( l : in List; pt : in Vector;
found : out boolean; lif : out integer );
-- DESCRIPTION :
-- Searches the lifting of the point in the lifted list l.
-- If found, then lif equals the lifting, otherwise lif is meaningless.
function Search_and_Lift ( l : List; pt : Vector ) return Vector;
-- DESCRIPTION :
-- Given a lifted list of points and a unlifted vector, the function
-- either returns the corresponding lifted vector from the list, or
-- the same point, when there is no lifted point in l whose projection
-- equals the given point pt.
function Induced_Lifting ( mixsub : Mixed_Subdivision; k : natural;
pt : Vector ) return Vector;
function Induced_Lifting
( n : natural; mix : Vector; points : Array_of_Lists;
mixsub : Mixed_Subdivision ) return Array_of_Lists;
-- DESCRIPTION :
-- Given a mixed subdivision for a tuple of supports,
-- then the lifted points will be returned as induced by the
-- subdivision. When points do not occur in the mixed subdivision,
-- they will be lifted conservatively.
procedure Constant_Lifting
( l : in List; liftval : in natural;
lifted,lifted_last : in out List );
-- DESCRIPTION :
-- Gives all points in l the constant lifting liftval,
-- and appends them to the list lifted, where lifted_last is
-- a pointer to the last element of lifted.
procedure Constant_Lifting
( al : in Array_of_Lists; liftval : in natural;
lifted,lifted_last : in out Array_of_Lists );
-- DESCRIPTION :
-- Gives all points in al(i) the constant lifting liftval,
-- and appends them to the lists lifted(i), where lifted_last(i) is
-- a pointer to the last element of lifted(i).
function Conservative_Lifting
( mic : Mixed_Cell; k : natural; point : Vector ) return integer;
function Conservative_Lifting
( mixsub : Mixed_Subdivision; k : natural; point : Vector )
return integer;
-- DESCRIPTION :
-- Returns the value of the conservative lifting function of the point
-- to be considered w.r.t. the kth polytope.
-- REQUIRED :
-- The given point must already be in the lifted space and its last
-- coordinate must contain already a lower bound for the lifting value.
function Lower_Lifting ( mic : Mixed_Cell; k : natural; point : Vector )
return integer;
-- DESCRIPTION :
-- Returns a lower bound on the lifting value. In case that the point
-- belongs to the kth component of the cell, the value zero is returned.
-- Otherwise, the conservative lifting value of the point w.r.t. the
-- cell is returned.
-- REQUIRED :
-- The point must be already in lifted space.
function Lower_Lifting ( mixsub : Mixed_Subdivision; k : natural;
point : Vector ) return integer;
-- DESCRIPTION :
-- Applies the lower lifting function to all cells in the subdivision.
-- Stops when the lower bound equals the lifting value of the point
-- equals the lifting of the point given on entry.
end Integer_Lifting_Utilities;