with Standard_Floating_Numbers; use Standard_Floating_Numbers;
with Standard_Floating_Vectors; use Standard_Floating_Vectors;
with Standard_Complex_Poly_Functions; use Standard_Complex_Poly_Functions;
with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
with Standard_Complex_Poly_SysFun; use Standard_Complex_Poly_SysFun;
with Standard_Complex_Polynomials; use Standard_Complex_Polynomials;
with Lists_of_Floating_Vectors; use Lists_of_Floating_Vectors;
with Arrays_of_Floating_Vector_Lists; use Arrays_of_Floating_Vector_Lists;
with Floating_Faces_of_Polytope; use Floating_Faces_of_Polytope;
package Floating_Lifting_Functions is
-- DESCRIPTION :
-- This package provides a suite of floating-point lifting functions.
-- RANDOM FLOATING-POINT LIFTING :
function Random_Lift ( lflow,lfupp : double_float ) return double_float;
function Random_Lift ( v : Vector; lflow,lfupp : double_float ) return Vector;
function Random_Lift ( l : List; lflow,lfupp : double_float ) return List;
function Random_Lift ( l : Array_of_Lists; lflow,lfupp : Vector )
return Array_of_Lists;
-- DESCRIPTION :
-- Random lifting values between lflow and lfupp.
-- LINEAR LIFTING FUNCTIONS :
function Linear_Lift ( x,v : Vector ) return Vector;
function Linear_Lift ( f : Face; v : Vector ) return Face;
function Linear_Lift ( l : List; v : Vector ) return List;
function Linear_Lift ( f : Faces; v : Vector ) return Faces;
-- DESCRIPTION :
-- Returns a linearly lifted vector, list or faces.
-- RANDOM FLOATING-POINT LINEAR LIFTING FUNCTIONS :
function Random ( n : natural; lflow,lfupp : double_float ) return Vector;
-- DESCRIPTION :
-- Returns a vector of range 1..n with randomly generated numbers,
-- in [lflow,lfupp]. Random linear lifting functions are provided
-- by using this randomly generated vector.
-- POLYNOMIAL LIFTING FUNCTIONS :
function Polynomial_Lift ( lf : Poly; x : Vector ) return Vector;
function Polynomial_Lift ( lf : Eval_Poly; x : Vector ) return Vector;
function Polynomial_Lift ( lf : Poly; l : List ) return List;
function Polynomial_Lift ( lf : Eval_Poly; l : List ) return List;
function Polynomial_Lift ( lf : Poly_Sys; l : Array_of_Lists )
return Array_of_Lists;
function Polynomial_Lift ( lf : Eval_Poly_Sys; l : Array_of_Lists )
return Array_of_Lists;
end Floating_Lifting_Functions;