Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Symmetry/symmetric_lifting_functions.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;
4: with Arrays_of_Integer_Vector_Lists;
5: with Arrays_of_Floating_Vector_Lists;
6: with Symmetry_Group; use Symmetry_Group;
7:
8: package Symmetric_Lifting_Functions is
9:
10: -- DESCRIPTION :
11: -- This package provides symmetric lifting functions.
12:
13: procedure Classify_Orbits
14: ( supports : in Arrays_of_Integer_Vector_Lists.Array_of_Lists;
15: mix : in Standard_Integer_Vectors.Vector;
16: v,w : in List_of_Permutations; norb : out natural;
17: orbits : out Arrays_of_Integer_Vector_Lists.Array_of_Lists );
18:
19: -- DESCRIPTION :
20: -- This procedure provides a symmetric lifting for the given supports,
21: -- w.r.t. the symmetry group, represented by the lists of permutations
22: -- v and w.
23:
24: -- ON ENTRY :
25: -- supports supports of a polynomial system;
26: -- mix type of mixture;
27: -- v,w linear representations of the group actions:
28: -- wk P(x) = P(vk x).
29:
30: -- ON RETURN :
31: -- norb the number of different orbits;
32: -- orbits the lifted supports, w.r.t. the symmetry group,
33: -- as lifting value the orbit number has been used.
34:
35: procedure Float_Lift_Orbits
36: ( orbits : in out Arrays_of_Floating_Vector_Lists.Array_of_Lists;
37: lifting : in Standard_Floating_Vectors.Vector );
38:
39: -- DESCRIPTION :
40: -- Given supports with classified orbits, each orbit will receive
41: -- the corresponding lifting value in the vector lifting.
42:
43: -- REQUIRED :
44: -- lifting has range 1..#orbits
45:
46: procedure Integer_Lift_Orbits
47: ( orbits : in out Arrays_of_Integer_Vector_Lists.Array_of_Lists;
48: lifting : in Standard_Integer_Vectors.Vector );
49:
50: -- DESCRIPTION :
51: -- Given supports with classified orbits, each orbit will receive
52: -- the corresponding lifting value in the vector lifting.
53:
54: -- REQUIRED :
55: -- lifting has range 1..#orbits
56:
57: procedure Float_Random_Lift_Orbits
58: ( orbits : in out Arrays_of_Floating_Vector_Lists.Array_of_Lists;
59: norb : in natural; lower,upper : in double_float );
60:
61: -- DESCRIPTION :
62: -- Orbits are given random floating-point lifting values in [lower,upper].
63: -- Every point in the same orbit receives the same lifting.
64:
65: -- ON ENTRY :
66: -- orbits classified orbits, last entry of vectors is orbit number;
67: -- norb the number of orbits;
68: -- lower lower bound for random number generator;
69: -- upper upper bound for random number generator.
70:
71: -- ON RETURN :
72: -- orbits each point in the same orbit has the same random number.
73:
74: procedure Integer_Random_Lift_Orbits
75: ( orbits : in out Arrays_of_Integer_Vector_Lists.Array_of_Lists;
76: norb : in natural; lower,upper : in integer );
77:
78: -- DESCRIPTION :
79: -- Orbits are given random integer lifting values in [lower,upper].
80: -- Every point in the same orbit receives the same lifting.
81:
82: -- ON ENTRY :
83: -- orbits classified orbits, last entry of vectors is orbit number;
84: -- norb the number of orbits;
85: -- lower lower bound for random number generator;
86: -- upper upper bound for random number generator.
87:
88: -- ON RETURN :
89: -- orbits each point in the same orbit has the same random number.
90:
91: end Symmetric_Lifting_Functions;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>