Annotation of OpenXM_contrib/PHC/Ada/Root_Counts/Implift/arrays_of_lists_utilities.ads, Revision 1.1
1.1 ! maekawa 1: with Standard_Integer_Vectors; use Standard_Integer_Vectors;
! 2: with Standard_Integer_VecVecs; use Standard_Integer_VecVecs;
! 3: with Lists_of_Integer_Vectors; use Lists_of_Integer_Vectors;
! 4: with Arrays_of_Integer_Vector_Lists; use Arrays_of_Integer_Vector_Lists;
! 5:
! 6: package Arrays_of_Lists_Utilities is
! 7:
! 8: -- DESCRIPTION :
! 9: -- This package offers some utilities for working with
! 10: -- arrays of lists of integer vectors.
! 11:
! 12: function All_Equal ( al : Array_of_Lists ) return boolean;
! 13:
! 14: -- DESCRIPTION :
! 15: -- returns true if all lists in al are the same.
! 16:
! 17: function Interchange2 ( al : Array_of_Lists ) return Array_of_Lists;
! 18:
! 19: -- DESCRIPTION :
! 20: -- Returns a permuted array such that if the original array contains
! 21: -- a list of length less than or equal to 2, the permuted array has
! 22: -- this list on its first position.
! 23:
! 24: function Index2 ( al : Array_of_Lists ) return integer;
! 25:
! 26: -- DESCRIPTION :
! 27: -- Returns the index of the list in the array which has a length less
! 28: -- than or equal to 2. If no such list can be found, then al'first
! 29: -- will be returned.
! 30:
! 31: procedure Mixture ( al : in Array_of_Lists; perm,mix : out Link_to_Vector );
! 32:
! 33: -- DESCRIPTION :
! 34: -- Computes the mixture of the sets in al: mix(i) indicates how many
! 35: -- times the ith list, given by al(perm(i)), occurs in the array.
! 36: -- The list with minimal occurence stands in front.
! 37:
! 38: function Permute ( perm : Vector; al : in Array_of_Lists )
! 39: return Array_of_Lists;
! 40:
! 41: -- DESCRIPTION :
! 42: -- The returned array is permuted according to the permutation vector.
! 43:
! 44: function Different_Points ( al : Array_of_Lists ) return List;
! 45:
! 46: -- DESCRIPTION :
! 47: -- Returns a list of all different points from the lists
! 48: -- of al, the first list will not be considered.
! 49:
! 50: function Different_Points ( al : Array_of_Lists ) return Array_of_Lists;
! 51:
! 52: -- DESCRIPTION :
! 53: -- Returns lists of all different points from the lists
! 54: -- of al, the first list will not be considered.
! 55:
! 56: procedure Remove_Duplicates ( al : in out Array_of_Lists );
! 57:
! 58: -- DESCRIPTION :
! 59: -- Except for the first list, all duplicates will be removed from
! 60: -- the lists in al.
! 61:
! 62: procedure Shift ( al : in out Array_of_Lists; shiftvecs : in VecVec );
! 63: function Shift ( al : Array_of_Lists; shiftvecs : VecVec )
! 64: return Array_of_Lists;
! 65:
! 66: -- DESCRIPTION :
! 67: -- All lists in al will be shifted along the degrees in shiftvecs.
! 68:
! 69: -- REQUIRED :
! 70: -- The ranges of shiftvecs and al are the same.
! 71:
! 72: procedure Projection ( al : in Array_of_Lists; v : in Vector;
! 73: ind : integer; res : in out Array_of_Lists;
! 74: degenerate : out boolean );
! 75: -- DESCRIPTION :
! 76: -- The first list in al will not be considered.
! 77: -- after termination:
! 78: -- 1. degenerate = false:
! 79: -- res is an array of degrees lists where for all points x in
! 80: -- the list res(i) the following holds: < x , v > = pv, where
! 81: -- pv equals the support of the list res(i) in the direction v.
! 82: -- The ind-entry of each point in the lists has been deleted.
! 83: -- Duplicates have been removed from the lists.
! 84: -- 2. degenerate = true:
! 85: -- if there exists an entry i for which Length_Of(res(i)) = 1.
! 86:
! 87: -- REQUIRED : al'first = res'first and al'last = res'last + 1
! 88:
! 89: end Arrays_of_Lists_Utilities;
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>