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>