class VMULTIMAP{ITP,TTP} < $VMULTIMAP{ITP,TTP}


Ancestors
$VMULTIMAP{_,_} $VBAG{_} $HASH $IS_EQ
$RO_BAG{_} $CONTAINER{_} $STR $COPY
$FILTERS{_} $ELT{_} $ELT $RO_MULTIMAP{_,_}



Public


Readable Attributes
attr total_size : CARD ; .. Included as total_size

Features
add( .. Included as add
add( .. Included as add
array : ARRAY{TUP{KEY,ETP}} .. Included as array
aset( .. Included as aset
build( cursor : STR_CURSOR) : SAME .. Included as build
****
build(cursor : STR_CURSOR, start, finish : CHAR ) : SAME .. Included as build
concat( .. Included as concat
contains( .. Included as contains
copy : SAME .. Included as copy
count( .. Included as count
count_if( .. Included as count_if
create( str : STR ) : SAME .. Included as create
****
create(str : STR, sep : CHAR ) : SAME .. Included as create
****
create( .. Included as create
create : SAME .. Included as create
**** This routine creates a new hash table which has a default size if
___self_is_void,_otherwise_half_the_size_of_self.
delete( .. Included as delete
delete( .. Included as delete
delete( .. Included as delete
delete( .. Included as delete
delete_all( .. Included as delete_all
delete_all( .. Included as delete_all
delete_ind( .. Included as delete_ind
diff( .. Included as diff
elt_eq(first,second : ETP) : BOOL .. Included as elt_eq
**** This is the standard 'less than' predicate used in sorting routines.
___The_using_class_must_specify_an_equality_predicate_routine.
elt_hash(elem : $OB) : CARD .. Included as elt_hash
****
________This_routine_returns_a_hash_value_associated_with_an_element._This
___must_have_the_property_that_if_"elt_eq(first,second)"_then
___"elt_hash(first)=elt_hash(second)"._It_could_be_defined_always_to_return_0,
___but_many_routines_will_then_become_quadratic._This_uses_the_object_"id"_by
___default.___It_may_be_redefined_in_descendants.
elt_lt(first,second : ETP) : BOOL .. Included as elt_lt
****
________This_routine_is_the_standard_predicate_'less_than'_for_use_in
___sorting.___By_default_the_object_identity_components_are_compared.
___It_may_be_redefined_in_descendants.
elt_nil : ETP .. Included as elt_nil
****
________This_routine_returns_the_NIL_value.___If_the_element_class_is_a
___subclass_of_$NIL_then_it_returns_nil,_otherwise_void.
equals( .. Included as equals
every( .. Included as every
exists( .. Included as exists
exists( .. Included as exists
has( .. Included as has
has_ind( .. Included as has_ind
hash : CARD .. Included as hash
inspect:STR .. Included as inspect
**** This routine returns a string representation of the contents of self. K.Kodama
intersection( .. Included as intersection
is_elt_nil( elem : ETP) : BOOL .. Included as is_elt_nil
**** This predicate returns true if and only if elem is NIL.
is_empty : BOOL .. Included as is_empty
is_eq(
is_subset_of( .. Included as is_subset_of
n_ind : CARD .. Included as n_ind
n_targets( .. Included as n_targets
n_unique : CARD .. Included as n_unique
not_every( .. Included as not_every
not_exists( .. Included as not_exists
size : CARD .. Included as size
str( lib : LIBCHARS ) : STR .. Included as str
str(lib : LIBCHARS, sep : CHAR ) : STR .. Included as str
str : STR .. Included as str
****
__This_routine_returns_a_string_representation_of_the_contents_of_self
__in_the_default_repertoire_and_encoding.
sym_diff( .. Included as sym_diff
union( .. Included as union

Iters
elt! : TUP{KEY,ELT} .. Included as elt!
filter!( .. Included as filter!
map_key! : K .. Included as ind!
not_filter!( .. Included as not_filter!
pair! : TUP{KEY,ELT} .. Included as pair!
target!( .. Included as target!
target! : ELT .. Included as target!
unique! : TUP{KEY,ELT} .. Included as unique!


Private

const Default_Array_Size : CARD := 5 ; .. Included as Default_Array_Size
const Default_Size : CARD := 16 ; .. Included as Default_Size
attr asize : CARD ; .. Included as asize
**** This is the size of the fraction of store which is currently in use.
___Array_access_beyond_this_bound_is_illegal.
attr asize : CARD ; .. Included as asize
**** This is the size of the fraction of store which is currently in use.
___Array_access_beyond_this_bound_is_illegal.
attr bound : CARD ; .. Included as bound
**** This gives the upper bound for split_pos. Is always initial_size * 2.pow(doubles).
attr bound : CARD ; .. Included as bound
**** This gives the upper bound for split_pos. Is always initial_size * 2.pow(doubles).
bucket(index : CARD) : BKT .. Included as bucket
build(cursor : STR_CURSOR, sep : CHAR_CODE, start : CHAR, finish : CHAR ) : SAME .. Included as build
create_sized(initial_size : CARD) : SAME .. Included as create_sized
data_nil : ELT .. Included as data_nil
**** This routine provides a 'nil' for the bucket data elements.
attr doubles : CARD ; .. Included as doubles
**** The number of times the initial table size has been doubled.
attr doubles : CARD ; .. Included as doubles
**** The number of times the initial table size has been doubled.
elt_eq(first,second : ETP) : BOOL .. Included as elt_key_eq
**** This is the standard 'less than' predicate used in sorting routines.
___The_using_class_must_specify_an_equality_predicate_routine.
elt_hash(elem : $OB) : CARD .. Included as elt_key_hash
****
________This_routine_returns_a_hash_value_associated_with_an_element._This
___must_have_the_property_that_if_"elt_eq(first,second)"_then
___"elt_hash(first)=elt_hash(second)"._It_could_be_defined_always_to_return_0,
___but_many_routines_will_then_become_quadratic._This_uses_the_object_"id"_by
___default.___It_may_be_redefined_in_descendants.
elt_nil : ETP .. Included as elt_key_nil
****
________This_routine_returns_the_NIL_value.___If_the_element_class_is_a
___subclass_of_$NIL_then_it_returns_nil,_otherwise_void.
grow .. Included as grow
hash(elem : ELT) : CARD .. Included as hash
shared lower_fill_ratio : FLT := 0.800 ; .. Included as lower_fill_ratio
shared lower_fill_ratio : FLT := 0.800 ; .. Included as lower_fill_ratio
map_aget(key : K) : ELT .. Included as map_aget
****
map_aset(key : K, elem : ELT) .. Included as map_aset
map_copy : SAME .. Included as map_copy
map_delete(key : K) : ELT .. Included as map_delete
map_elt! : ELT .. Included as map_elt!
map_has_ind(key : K) : BOOL .. Included as map_has_ind
map_pair! : TUP{K,ELT} .. Included as map_pair!
attr minsize : CARD ; .. Included as minsize
**** This is the lower bound for the store size.
attr minsize : CARD ; .. Included as minsize
**** This is the lower bound for the store size.
attr n_inds : CARD ; .. Included as n_inds
**** This gives the number of elements (resp. indices) in the table.
attr n_inds : CARD ; .. Included as n_inds
**** This gives the number of elements (resp. indices) in the table.
set_bucket(index : CARD, bucket : BKT) .. Included as set_bucket
shrink .. Included as shrink
attr split_pos : CARD ; .. Included as split_pos
**** This is the position of the next bucket to split.
attr split_pos : CARD ; .. Included as split_pos
**** This is the position of the next bucket to split.
attr store : AREF{BKT} ; .. Included as store
**** The data being stored.
attr store : AREF{BKT} ; .. Included as store
**** The data being stored.
attr total_size : CARD ; .. Included as total_size
update_delete .. Included as update_delete
update_insert .. Included as update_insert
shared upper_fill_ratio : FLT := 1.000 ; .. Included as upper_fill_ratio
**** These two bounds are specified for efficient memory usage. For fast
___access_the_ratio_between_the_number_of_elements_and_the_number_of_cells
___should_be_low.___For_efficient_memory_usage_the_converse_is_true.___Unless
___the_list_is_really_small_the_ration_should_be_between_the_above_bounds.
shared upper_fill_ratio : FLT := 1.000 ; .. Included as upper_fill_ratio
**** These two bounds are specified for efficient memory usage. For fast
___access_the_ratio_between_the_number_of_elements_and_the_number_of_cells
___should_be_low.___For_efficient_memory_usage_the_converse_is_true.___Unless
___the_list_is_really_small_the_ration_should_be_between_the_above_bounds.

The Sather Home Page