It seems to me that there is little benefit to allowing resizing of associative arrays. As I understand Arturo's description, the result is the same as if a dynamic array is randomized with a size constraint. That is: a) a random size is selected b) all the existing array elements are deleted c) 'size' new array element are created (where size is the selected random size). These elements are indexed by 0,1,...(size-1). d) The values of the elements are then randomized. If this is the desired behavior, a dynamic array should be used. To truly randomize an associative array I like Arturo's method of randomizing two dynamic arrays (one for the indices, the other for the value) - and then combining them to form the associative array. With this approach, constraints can be applied to the indices as well as the values. If re-sizing of associative array is allowed, I believe many Users would expect behavior other than the dynamic array model. I would also expect questions (enhancement requests) about how to constrain the indices. I think it would be a better to simply not allow resizing of associative arrays - and recommend the two array method instead. Regarding the discussion about re-sizing an dynamic array of class handles. Issue #889 proposes that if the element type is a class handle, re-sizing is not supported. In this case, the value of array.size() is treated as state value. - Ray > -----Original Message----- > From: Vreugdenhil, Gordon > Sent: Wednesday, May 17, 2006 1:35 PM > To: Arturo Salz > Cc: Ryan, Ray; sv-ec@eda.org > Subject: Re: [sv-ec] random resizing of associative array > > That mostly answers my questions but leaves one important > issue open. If I have indices (1, 3, 5) referring to > non-null class objects and specify a size constraint of 3, is > that an error? > I am not "resizing" but would be "reorganizing" the indices. > From a user perspective, this doesn't require class > construction so if we define it to be illegal (equivalent to > requiring class construction) then this needs to be made > explicit. If this is legal then I would wonder about the > rules for determining the reinsertion order. > At the same time the LRM should clarify whether it is legal > if the indices were already (0, 1, 2). > > Gord. > > > Arturo Salz wrote: > > > Gord, > > > > Your example should end up with an array of size 3, whose > indices are > > (0, 1, 2), and the contents are randomized according to any > constraint. > > That's why I wrote that constraining the size of an > associative array > > can be treated in the same way as a dynamic array. > > > > If the element type is a class type then the array cannot > grow in size > > because the solver doesn't know how to create the > additional objects. > > Object creation as part of the constraint solution is a whole > > different discussion, which would lead to several enhancements. > > > > Arturo > > -- > -------------------------------------------------------------------- > Gordon Vreugdenhil 503-685-0808 > Model Technology (Mentor Graphics) gordonv@model.com >Received on Wed May 17 14:16:40 2006
This archive was generated by hypermail 2.1.8 : Wed May 17 2006 - 14:17:02 PDT