Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Stalift/floating_lifting_utilities.ads, Revision 1.1.1.1
1.1 maekawa 1: with Standard_Floating_Numbers; use Standard_Floating_Numbers;
2: with Standard_Integer_Vectors;
3: with Standard_Floating_Vectors; use Standard_Floating_Vectors;
4: with Lists_of_Floating_Vectors; use Lists_of_Floating_Vectors;
5: with Floating_Mixed_Subdivisions; use Floating_Mixed_Subdivisions;
6: with Arrays_of_Floating_Vector_Lists; use Arrays_of_Floating_Vector_Lists;
7:
8: package Floating_Lifting_Utilities is
9:
10: -- DESCRIPTION :
11: -- This package provides some utilities for dealing with lifting functions.
12:
13: function Adaptive_Lifting ( l : Array_of_Lists ) return Vector;
14:
15: -- DESCRIPTION :
16: -- Returns upper bounds for a random lifting, depending on the lengths
17: -- of the lists in l.
18:
19: procedure Search_Lifting ( l : in List; pt : in Vector;
20: found : out boolean; lif : out double_float );
21:
22: -- DESCRIPTION :
23: -- Searches the lifting of the point in the lifted list l.
24: -- If found, then lif equals the lifting, otherwise lif is meaningless.
25:
26: function Search_and_Lift ( l : List; pt : Vector ) return Vector;
27:
28: -- DESCRIPTION :
29: -- Given a lifted list of points and a unlifted vector, the function
30: -- either returns the corresponding lifted vector from the list, or
31: -- the same point, when there is no lifted point in l whose projection
32: -- equals the given point pt.
33:
34: function Occured_Lifting ( mixsub : Mixed_Subdivision; k : natural;
35: pt : Vector ) return Vector;
36:
37: -- DESCRIPTION :
38: -- Returns the point pt augmented with its lifting value when it
39: -- occurs in the kth component of some cell in the subdivision.
40: -- Otherwise the point itself is returned.
41:
42: function Occured_Lifting
43: ( n : natural; mix : Standard_Integer_Vectors.Vector;
44: points : Array_of_Lists; mixsub : Mixed_Subdivision )
45: return Array_of_Lists;
46:
47: -- DESCRIPTION :
48: -- Returns the lifted points for those points that belong to the
49: -- mixed cells in the subdivision.
50:
51: function Induced_Lifting ( mixsub : Mixed_Subdivision; k : natural;
52: pt : Vector ) return Vector;
53: function Induced_Lifting
54: ( n : natural; mix : Standard_Integer_Vectors.Vector;
55: points : Array_of_Lists; mixsub : Mixed_Subdivision )
56: return Array_of_Lists;
57:
58: -- DESCRIPTION :
59: -- Given a mixed subdivision for a tuple of supports,
60: -- then the lifted points will be returned as induced by the
61: -- subdivision. When points do not occur in the mixed subdivision,
62: -- they will be lifted conservatively.
63:
64: function Conservative_Lifting
65: ( mic : Mixed_Cell; k : natural; point : Vector )
66: return double_float;
67: function Conservative_Lifting
68: ( mixsub : Mixed_Subdivision; k : natural; point : Vector )
69: return double_float;
70:
71: -- DESCRIPTION :
72: -- Returns the value of the conservative lifting function of the point
73: -- to be considered w.r.t. the kth polytope.
74:
75: -- REQUIRED :
76: -- The given point must already be in the lifted space and its last
77: -- coordinate must contain already a lower bound for the lifting value.
78:
79: end Floating_Lifting_Utilities;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>