with Standard_Integer_Vectors; use Standard_Integer_Vectors; with Transformations; use Transformations; package Integer_Vectors_Utilities is -- DESCRIPTION : -- This package offers utilities for transforming integer vectors. function Pivot ( v : Vector ) return integer; function Pivot ( v : Link_to_Vector ) return integer; -- DESCRIPTION : -- Returns the first nonzero entry out of v. -- If all entries of v are zero, then v'last+1 is returned. function Reduce ( v : Vector; i : integer ) return Vector; procedure Reduce ( v : in out Link_to_Vector; i : in integer ); function Reduce ( v : Link_to_Vector; i : integer ) return Link_to_Vector; -- DESCRIPTION : -- The i-th component will be deleted out of the vector. function Insert ( v : Vector; i,a : integer ) return Vector; procedure Insert ( v : in out Link_to_Vector; i,a : in integer ); function Insert ( v : Link_to_Vector; i,a : integer ) return Link_to_Vector; -- DESCRIPTION : -- The i-th component will be inserted, using the value a. function Insert_and_Transform ( v : Vector; i,a : integer; t : Transfo ) return Vector; procedure Insert_and_Transform ( v : in out Link_to_Vector; i,a : in integer; t : in Transfo ); function Insert_and_Transform ( v : Link_to_Vector; i,a : integer; t : Transfo ) return Link_to_Vector; -- DESCRIPTION : -- Inserts the i-th component in the vector v, -- using the value a, and transforms the vector, applying t. end Integer_Vectors_Utilities;