with Standard_Floating_Numbers; use Standard_Floating_Numbers;
with Standard_Natural_Vectors;
with Standard_Integer_Vectors;
with Standard_Floating_Vectors;
with Standard_Complex_Vectors;
with Standard_Complex_Polynomials;
with Standard_Complex_Laur_Polys;
with Standard_Complex_Poly_Systems; use Standard_Complex_Poly_Systems;
with Standard_Complex_Laur_Systems; use Standard_Complex_Laur_Systems;
with Permutations; use Permutations;
package Permute_Operations is
-- DESCRIPTION :
-- This package provides permute operations on vectors,
-- on polynomials and on systems of polynomials.
function "*" ( p : Permutation; v : Standard_Natural_Vectors.Vector )
return Standard_Natural_Vectors.Vector;
function "*" ( p : Permutation; v : Standard_Integer_Vectors.Vector )
return Standard_Integer_Vectors.Vector;
function "*" ( p : Permutation; v : Standard_Floating_Vectors.Vector )
return Standard_Floating_Vectors.Vector;
function "*" ( p : Permutation; v : Standard_Complex_Vectors.Vector )
return Standard_Complex_Vectors.Vector;
-- DESCRIPTION :
-- returns the result of the permutation of p on the vector v.
-- REQUIRED :
-- p'range = v'range
function Permutable ( v1,v2 : Standard_Natural_Vectors.Vector )
return boolean;
function Permutable ( v1,v2 : Standard_Integer_Vectors.Vector )
return boolean;
function Permutable ( v1,v2 : Standard_Floating_Vectors.Vector )
return boolean;
function Permutable ( v1,v2 : Standard_Complex_Vectors.Vector )
return boolean;
function Permutable ( v1,v2 : Standard_Floating_Vectors.Vector;
tol : double_float ) return boolean;
function Permutable ( v1,v2 : Standard_Complex_Vectors.Vector;
tol : double_float ) return boolean;
-- DESCRIPTION :
-- Returns true if there exists a permutation between the two vectors.
-- If provided, tol is the tolerance for comparing two numeric values.
function Sign_Permutable ( v1,v2 : Standard_Natural_Vectors.Vector )
return boolean;
function Sign_Permutable ( v1,v2 : Standard_Integer_Vectors.Vector )
return boolean;
function Sign_Permutable ( v1,v2 : Standard_Floating_Vectors.Vector )
return boolean;
function Sign_Permutable ( v1,v2 : Standard_Complex_Vectors.Vector )
return boolean;
function Sign_Permutable ( v1,v2 : Standard_Floating_Vectors.Vector;
tol : double_float ) return boolean;
function Sign_Permutable ( v1,v2 : Standard_Complex_Vectors.Vector;
tol : double_float ) return boolean;
-- DESCRIPTION :
-- Also permutations where the sign of one of the components can
-- be changed, are checked.
function "*" ( p : Permutation; t : Standard_Complex_Polynomials.Term )
return Standard_Complex_Polynomials.Term;
function "*" ( p : Permutation; s : Standard_Complex_Polynomials.Poly )
return Standard_Complex_Polynomials.Poly;
function "*" ( p : Permutation; t : Standard_Complex_Laur_Polys.Term )
return Standard_Complex_Laur_Polys.Term;
function "*" ( p : Permutation; s : Standard_Complex_Laur_Polys.Poly )
return Standard_Complex_Laur_Polys.Poly;
-- DESCRIPTION :
-- permutes the unknowns in the term t or the polynonomial s,
-- according to the permuation p.
function "*" ( s : Poly_Sys; p : Permutation ) return Poly_Sys;
function "*" ( s : Laur_Sys; p : Permutation ) return Laur_Sys;
function "*" ( p : Permutation; s : Poly_Sys ) return Poly_Sys;
function "*" ( p : Permutation; s : Laur_Sys ) return Laur_Sys;
-- DESCRIPTION :
-- s*p permutes the unknowns in the individual polynomials.
-- p*s permutes the equations in the system.
-- Watch out for sharing by this second type of operation!
end Permute_Operations;