Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Symmetry/permute_operations.ads, Revision 1.1.1.1
1.1 maekawa 1: with Standard_Floating_Numbers; use Standard_Floating_Numbers;
2: with Standard_Natural_Vectors;
3: with Standard_Integer_Vectors;
4: with Standard_Floating_Vectors;
5: with Standard_Complex_Vectors;
6: with Standard_Complex_Polynomials;
7: with Standard_Complex_Laur_Polys;
8: with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
9: with Standard_Complex_Laur_Systems; use Standard_Complex_Laur_Systems;
10: with Permutations; use Permutations;
11:
12: package Permute_Operations is
13:
14: -- DESCRIPTION :
15: -- This package provides permute operations on vectors,
16: -- on polynomials and on systems of polynomials.
17:
18: function "*" ( p : Permutation; v : Standard_Natural_Vectors.Vector )
19: return Standard_Natural_Vectors.Vector;
20:
21: function "*" ( p : Permutation; v : Standard_Integer_Vectors.Vector )
22: return Standard_Integer_Vectors.Vector;
23:
24: function "*" ( p : Permutation; v : Standard_Floating_Vectors.Vector )
25: return Standard_Floating_Vectors.Vector;
26:
27: function "*" ( p : Permutation; v : Standard_Complex_Vectors.Vector )
28: return Standard_Complex_Vectors.Vector;
29:
30: -- DESCRIPTION :
31: -- returns the result of the permutation of p on the vector v.
32: -- REQUIRED :
33: -- p'range = v'range
34:
35: function Permutable ( v1,v2 : Standard_Natural_Vectors.Vector )
36: return boolean;
37: function Permutable ( v1,v2 : Standard_Integer_Vectors.Vector )
38: return boolean;
39: function Permutable ( v1,v2 : Standard_Floating_Vectors.Vector )
40: return boolean;
41: function Permutable ( v1,v2 : Standard_Complex_Vectors.Vector )
42: return boolean;
43: function Permutable ( v1,v2 : Standard_Floating_Vectors.Vector;
44: tol : double_float ) return boolean;
45: function Permutable ( v1,v2 : Standard_Complex_Vectors.Vector;
46: tol : double_float ) return boolean;
47:
48: -- DESCRIPTION :
49: -- Returns true if there exists a permutation between the two vectors.
50: -- If provided, tol is the tolerance for comparing two numeric values.
51:
52: function Sign_Permutable ( v1,v2 : Standard_Natural_Vectors.Vector )
53: return boolean;
54: function Sign_Permutable ( v1,v2 : Standard_Integer_Vectors.Vector )
55: return boolean;
56: function Sign_Permutable ( v1,v2 : Standard_Floating_Vectors.Vector )
57: return boolean;
58: function Sign_Permutable ( v1,v2 : Standard_Complex_Vectors.Vector )
59: return boolean;
60: function Sign_Permutable ( v1,v2 : Standard_Floating_Vectors.Vector;
61: tol : double_float ) return boolean;
62: function Sign_Permutable ( v1,v2 : Standard_Complex_Vectors.Vector;
63: tol : double_float ) return boolean;
64:
65: -- DESCRIPTION :
66: -- Also permutations where the sign of one of the components can
67: -- be changed, are checked.
68:
69: function "*" ( p : Permutation; t : Standard_Complex_Polynomials.Term )
70: return Standard_Complex_Polynomials.Term;
71:
72: function "*" ( p : Permutation; s : Standard_Complex_Polynomials.Poly )
73: return Standard_Complex_Polynomials.Poly;
74:
75: function "*" ( p : Permutation; t : Standard_Complex_Laur_Polys.Term )
76: return Standard_Complex_Laur_Polys.Term;
77:
78: function "*" ( p : Permutation; s : Standard_Complex_Laur_Polys.Poly )
79: return Standard_Complex_Laur_Polys.Poly;
80:
81: -- DESCRIPTION :
82: -- permutes the unknowns in the term t or the polynonomial s,
83: -- according to the permuation p.
84:
85: function "*" ( s : Poly_Sys; p : Permutation ) return Poly_Sys;
86: function "*" ( s : Laur_Sys; p : Permutation ) return Laur_Sys;
87:
88: function "*" ( p : Permutation; s : Poly_Sys ) return Poly_Sys;
89: function "*" ( p : Permutation; s : Laur_Sys ) return Laur_Sys;
90:
91: -- DESCRIPTION :
92: -- s*p permutes the unknowns in the individual polynomials.
93: -- p*s permutes the equations in the system.
94: -- Watch out for sharing by this second type of operation!
95:
96: end Permute_Operations;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>