[BACK]Return to integer_lifting_functions.ads CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Root_Counts / Stalift

Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Stalift/integer_lifting_functions.ads, Revision 1.1.1.1

1.1       maekawa     1: with Standard_Integer_Vectors;           use Standard_Integer_Vectors;
                      2: with Standard_Integer_VecVecs;           use Standard_Integer_VecVecs;
                      3: with Lists_of_Integer_Vectors;           use Lists_of_Integer_Vectors;
                      4: with Arrays_of_Integer_Vector_Lists;     use Arrays_of_Integer_Vector_Lists;
                      5: with Standard_Complex_Polynomials;       use Standard_Complex_Polynomials;
                      6: with Standard_Complex_Poly_Functions;    use Standard_Complex_Poly_Functions;
                      7: with Standard_Complex_Poly_Systems;      use Standard_Complex_Poly_Systems;
                      8: with Standard_Complex_Poly_SysFun;       use Standard_Complex_Poly_SysFun;
                      9:
                     10: package Integer_Lifting_Functions is
                     11:
                     12: -- DESCRIPTION :
                     13: --   This package offers three different types of integer-valued
                     14: --   lifting functions: linear, polynomial, and point-wise.
                     15:
                     16: -- LINEAR LIFTING :
                     17:
                     18:   function Linear_Lift ( lf,v : Vector ) return Vector;
                     19:   function Linear_Lift ( lf : Vector; l : List ) return List;
                     20:   function Linear_Lift ( lf : VecVec;
                     21:                          l : Array_of_Lists ) return Array_of_Lists;
                     22:
                     23:   -- DESCRIPTION :
                     24:   --   The last entry of the enlarged vector on return equals <lf,v>,
                     25:   --   for every vector v in the lists.
                     26:
                     27:   -- REQUIRED : lf'range = v'range.
                     28:
                     29: -- POLYNOMIAL LIFTING :
                     30:
                     31:   function Polynomial_Lift ( lf : Poly; v : Vector ) return Vector;
                     32:   function Polynomial_Lift ( lf : Eval_Poly; v : Vector ) return Vector;
                     33:   function Polynomial_Lift ( lf : Poly; l : List ) return List;
                     34:   function Polynomial_Lift ( lf : Eval_Poly; l : List ) return List;
                     35:   function Polynomial_Lift ( lf : Poly_Sys; l : Array_of_Lists )
                     36:                            return Array_of_Lists;
                     37:   function Polynomial_Lift ( lf : Eval_Poly_Sys; l : Array_of_Lists )
                     38:                            return Array_of_Lists;
                     39:
                     40:   -- DESCRIPTION :
                     41:   --   As lf is complex valued, the rounded real part is used as lifting.
                     42:
                     43: -- RANDOM LIFTING :
                     44:
                     45:   function Random_Lift ( lflow,lfupp : integer; v : Vector ) return Vector;
                     46:   function Random_Lift ( lflow,lfupp : integer; l : List ) return List;
                     47:   function Random_Lift ( lflow,lfupp : Vector; l : Array_of_Lists )
                     48:                        return Array_of_Lists;
                     49:
                     50:   -- DESCRIPTION :
                     51:   --   The lifting values are random integers between lflow and lfupp.
                     52:
                     53: -- RANDOM LINEAR LIFTING :
                     54:
                     55:   function Random_Linear_Lift ( lflow,lfupp : integer; v : Vector )
                     56:                               return Vector;
                     57:   function Random_Linear_Lift ( lflow,lfupp : integer; l : List ) return List;
                     58:   function Random_Linear_Lift ( lflow,lfupp : Vector; l : Array_of_Lists )
                     59:                               return Array_of_Lists;
                     60:
                     61:   -- DESCRIPTION :
                     62:   --   Linear lifting with random vectors of integers between lflow and lfupp.
                     63:
                     64: -- POINT-WISE LIFTING :
                     65:
                     66:   function Point_Lift ( lf : integer; v : Vector ) return Vector;
                     67:   function Point_Lift ( lf : Vector; l : List ) return List;
                     68:   function Point_Lift ( lf : VecVec;
                     69:                         l : Array_of_Lists ) return Array_of_Lists;
                     70:
                     71:   -- DESCRIPTION :
                     72:   --   The enlarged vector on return has as last component the lifting lf(k),
                     73:   --   where k is the position of the vector v in the lists.
                     74:
                     75:   -- REQUIRED : Length_Of(l) = lf'length.
                     76:
                     77: end Integer_Lifting_Functions;

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>