Lines Matching defs:to

45  *   - uses less RAM compared to closed addressing (chaining), because
46 * our entries are small (especially in Sets, which tend to contain
49 * - tends to equalize displacement of entries from their optimal buckets.
66 * - Applies to Robin Hood with linear probing. Contains remarks on
72 * - Similar to Janson. Note that Viola writes about C_{m,n} (number of probes
86 * For unordered hashmaps, randomize iteration order, similarly to Perl:
94 /* Fields common to entries of all hashmap/set types */
116 /* In several functions it is advantageous to have the hash table extended
139 #define DIB_RAW_REHASH ((dib_raw_t)0xfeU) /* entry yet to be rehashed during in-place resize */
141 #define DIB_RAW_INIT ((char)DIB_RAW_FREE) /* a byte to memset a DIB store with when initializing */
155 /* fields to detect modification while iterating */
202 /* We should be able to store at least one entry directly. */
217 const struct hash_ops *hash_ops; /* hash and compare ops to use */
333 /* Returns a hash function key to use. In order to keep things
369 /* Returns a pointer to the bucket at index idx.
403 * would have to be bad. For example, in a table of size 2^24 filled
404 * to load factor 0.9 the maximum observed DIB is only about 60.
409 * the unlikely case. XXX Hitting this case could be a hint to rehash.
437 unsigned from, unsigned to) {
440 assert(from != to);
443 e_to = bucket_at_virtual(h, swap, to);
456 le->iterate_previous = to;
462 le->iterate_next = to;
466 lh->iterate_list_head = to;
468 lh->iterate_list_tail = to;
514 /* The buckets are not supposed to be all occupied and with DIB > 0.
570 * a backward shift. The next entry may thus move one bucket to the left.
572 * going to iterate next. If it does not match, there was a backward shift.
610 /* fast forward to the first occupied bucket */
627 * a backward shift. The next entry may thus move one bucket to the left.
629 * going to iterate next. If it does not match, there was a backward shift.
909 * Finds an empty bucket to put an entry into, starting the scan at 'idx'.
910 * Performs Robin Hood swaps as it goes. The entry to put must be placed
914 * Returns: true if it left a displaced entry to rehash next in IDX_PUT,
1079 /* Must upgrade direct to indirect storage. */
1088 /* Get a new hash key. If we've just upgraded to indirect storage,
1102 * Move the DIB array to the new place, replacing valid DIB values with
1103 * DIB_RAW_REHASH to indicate all of the used buckets need rehashing.
1130 * Not much to do if by luck the entry hashes to its current
1612 * The same as hashmap_merge(), but every new item from other is moved to h.
1633 * entries are yet present in h. This is preferable to risking
1634 * an allocation failure in the middle of the moving and having to