class DYNAMIC_BUCKET_TABLE{ELT,BKT < $BUCKET{ELT,BKT}}
****
This class implements a hash table using dynamic buckets as described
___in_Per-Ake_Larson;_Communications_of_the_ACM_Vol.31_(1988)_P.446-457.
________The_directory/segment_structure_has_been_changed_in_favour_of
___a_dymnamically_changing_array_as_storage_area.


Flattened version is here

Ancestors
COMPARE{_}



Public


Readable Attributes
attr n_inds : CARD ;
**** This gives the number of elements (resp. indices) in the table.

Features
create_sized(initial_size : CARD) : SAME


Private

const Default_Size : CARD := 16 ;
attr asize : CARD ;
**** This is the size of the fraction of store which is currently in use.
___Array_access_beyond_this_bound_is_illegal.
attr asize : CARD ;
**** This is the size of the fraction of store which is currently in use.
___Array_access_beyond_this_bound_is_illegal.
attr bound : CARD ;
**** This gives the upper bound for split_pos. Is always initial_size * 2.pow(doubles).
attr bound : CARD ;
**** This gives the upper bound for split_pos. Is always initial_size * 2.pow(doubles).
attr doubles : CARD ;
**** The number of times the initial table size has been doubled.
attr doubles : CARD ;
**** The number of times the initial table size has been doubled.
shared lower_fill_ratio : FLT := 0.800 ;
shared lower_fill_ratio : FLT := 0.800 ;
attr minsize : CARD ;
**** This is the lower bound for the store size.
attr minsize : CARD ;
**** This is the lower bound for the store size.
attr n_inds : CARD ;
**** This gives the number of elements (resp. indices) in the table.
attr split_pos : CARD ;
**** This is the position of the next bucket to split.
attr split_pos : CARD ;
**** This is the position of the next bucket to split.
attr store : AREF{BKT} ;
**** The data being stored.
attr store : AREF{BKT} ;
**** The data being stored.
shared upper_fill_ratio : FLT := 1.000 ;
**** 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 ;
**** 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