[BACK]Return to symmetric_lifting_functions.ads CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / PHC / Ada / Root_Counts / Symmetry

File: [local] / OpenXM_contrib / PHC / Ada / Root_Counts / Symmetry / symmetric_lifting_functions.ads (download)

Revision 1.1.1.1 (vendor branch), Sun Oct 29 17:45:31 2000 UTC (23 years, 7 months ago) by maekawa
Branch: PHC, MAIN
CVS Tags: v2, maekawa-ipv6, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, HEAD
Changes since 1.1: +0 -0 lines

Import the second public release of PHCpack.

OKed by Jan Verschelde.

with Standard_Floating_Numbers;          use Standard_Floating_Numbers;
with Standard_Integer_Vectors;
with Standard_Floating_Vectors;
with Arrays_of_Integer_Vector_Lists;
with Arrays_of_Floating_Vector_Lists;
with Symmetry_Group;                     use Symmetry_Group;

package Symmetric_Lifting_Functions is

-- DESCRIPTION :
--   This package provides symmetric lifting functions.

  procedure Classify_Orbits
               ( supports : in Arrays_of_Integer_Vector_Lists.Array_of_Lists;
                 mix : in Standard_Integer_Vectors.Vector;
                 v,w : in List_of_Permutations; norb : out natural;
                 orbits : out Arrays_of_Integer_Vector_Lists.Array_of_Lists );

  -- DESCRIPTION :
  --   This procedure provides a symmetric lifting for the given supports,
  --   w.r.t. the symmetry group, represented by the lists of permutations
  --   v and w.

  -- ON ENTRY :
  --   supports  supports of a polynomial system;
  --   mix       type of mixture;
  --   v,w       linear representations of the group actions:
  --               wk P(x) = P(vk x).

  -- ON RETURN :
  --   norb      the number of different orbits;
  --   orbits    the lifted supports, w.r.t. the symmetry group,
  --             as lifting value the orbit number has been used.

  procedure Float_Lift_Orbits
               ( orbits : in out Arrays_of_Floating_Vector_Lists.Array_of_Lists;
                 lifting : in Standard_Floating_Vectors.Vector );

  -- DESCRIPTION :
  --   Given supports with classified orbits, each orbit will receive
  --   the corresponding lifting value in the vector lifting.

  -- REQUIRED :
  --   lifting has range 1..#orbits

  procedure Integer_Lift_Orbits
               ( orbits : in out Arrays_of_Integer_Vector_Lists.Array_of_Lists;
                 lifting : in Standard_Integer_Vectors.Vector );

  -- DESCRIPTION :
  --   Given supports with classified orbits, each orbit will receive
  --   the corresponding lifting value in the vector lifting.

  -- REQUIRED :
  --   lifting has range 1..#orbits

  procedure Float_Random_Lift_Orbits
               ( orbits : in out Arrays_of_Floating_Vector_Lists.Array_of_Lists;
                 norb : in natural; lower,upper : in double_float );

  -- DESCRIPTION :
  --   Orbits are given random floating-point lifting values in [lower,upper].
  --   Every point in the same orbit receives the same lifting.

  -- ON ENTRY :
  --   orbits    classified orbits, last entry of vectors is orbit number;
  --   norb      the number of orbits;
  --   lower     lower bound for random number generator;
  --   upper     upper bound for random number generator.

  -- ON RETURN :
  --   orbits    each point in the same orbit has the same random number.

  procedure Integer_Random_Lift_Orbits
               ( orbits : in out Arrays_of_Integer_Vector_Lists.Array_of_Lists;
                 norb : in natural; lower,upper : in integer );

  -- DESCRIPTION :
  --   Orbits are given random integer lifting values in [lower,upper].
  --   Every point in the same orbit receives the same lifting.

  -- ON ENTRY :
  --   orbits    classified orbits, last entry of vectors is orbit number;
  --   norb      the number of orbits;
  --   lower     lower bound for random number generator;
  --   upper     upper bound for random number generator.

  -- ON RETURN :
  --   orbits    each point in the same orbit has the same random number.

end Symmetric_Lifting_Functions;