@@ -170,12 +170,12 @@ impl Hasher for FxHasher {
170
170
// As most hash table implementations (including hashbrown) compute
171
171
// the bucket index from the bottom bits we want to move bits from the
172
172
// top to the bottom. Ideally we'd rotate left by exactly the hash table
173
- // size, but as we don't know this we'll choose 20 bits, giving decent
174
- // entropy up until 2^20 table sizes. On 32-bit hosts we'll dial it
173
+ // size, but as we don't know this we'll choose 26 bits, giving decent
174
+ // entropy up until 2^26 table sizes. On 32-bit hosts we'll dial it
175
175
// back down a bit to 15 bits.
176
176
177
177
#[ cfg( target_pointer_width = "64" ) ]
178
- const ROTATE : u32 = 20 ;
178
+ const ROTATE : u32 = 26 ;
179
179
#[ cfg( target_pointer_width = "32" ) ]
180
180
const ROTATE : u32 = 15 ;
181
181
@@ -339,75 +339,75 @@ mod tests {
339
339
fn unsigned ( ) {
340
340
test_hash ! {
341
341
hash( 0_u8 ) == 0 ,
342
- hash( 1_u8 ) == if B32 { 3001993707 } else { 12583873379513078615 } ,
343
- hash( 100_u8 ) == if B32 { 3844759569 } else { 4008740938959785536 } ,
344
- hash( u8 :: MAX ) == if B32 { 999399879 } else { 17600987023830959190 } ,
342
+ hash( 1_u8 ) == if B32 { 3001993707 } else { 12157901119326311915 } ,
343
+ hash( 100_u8 ) == if B32 { 3844759569 } else { 16751747135202103309 } ,
344
+ hash( u8 :: MAX ) == if B32 { 999399879 } else { 1211781028898739645 } ,
345
345
346
346
hash( 0_u16 ) == 0 ,
347
- hash( 1_u16 ) == if B32 { 3001993707 } else { 12583873379513078615 } ,
348
- hash( 100_u16 ) == if B32 { 3844759569 } else { 4008740938959785536 } ,
349
- hash( u16 :: MAX ) == if B32 { 3440503042 } else { 4001367065645062987 } ,
347
+ hash( 1_u16 ) == if B32 { 3001993707 } else { 12157901119326311915 } ,
348
+ hash( 100_u16 ) == if B32 { 3844759569 } else { 16751747135202103309 } ,
349
+ hash( u16 :: MAX ) == if B32 { 3440503042 } else { 16279819243059860173 } ,
350
350
351
351
hash( 0_u32 ) == 0 ,
352
- hash( 1_u32 ) == if B32 { 3001993707 } else { 12583873379513078615 } ,
353
- hash( 100_u32 ) == if B32 { 3844759569 } else { 4008740938959785536 } ,
354
- hash( u32 :: MAX ) == if B32 { 1293006356 } else { 17126373362251322066 } ,
352
+ hash( 1_u32 ) == if B32 { 3001993707 } else { 12157901119326311915 } ,
353
+ hash( 100_u32 ) == if B32 { 3844759569 } else { 16751747135202103309 } ,
354
+ hash( u32 :: MAX ) == if B32 { 1293006356 } else { 7729994835221066939 } ,
355
355
356
356
hash( 0_u64 ) == 0 ,
357
- hash( 1_u64 ) == if B32 { 275023839 } else { 12583873379513078615 } ,
358
- hash( 100_u64 ) == if B32 { 1732383522 } else { 4008740938959785536 } ,
359
- hash( u64 :: MAX ) == if B32 { 1017982517 } else { 5862870694197521576 } ,
357
+ hash( 1_u64 ) == if B32 { 275023839 } else { 12157901119326311915 } ,
358
+ hash( 100_u64 ) == if B32 { 1732383522 } else { 16751747135202103309 } ,
359
+ hash( u64 :: MAX ) == if B32 { 1017982517 } else { 6288842954450348564 } ,
360
360
361
361
hash( 0_u128 ) == 0 ,
362
- hash( 1_u128 ) == if B32 { 1860738631 } else { 12885773367358079611 } ,
363
- hash( 100_u128 ) == if B32 { 1389515751 } else { 15751995649841559633 } ,
364
- hash( u128 :: MAX ) == if B32 { 2156022013 } else { 11423841400550042156 } ,
362
+ hash( 1_u128 ) == if B32 { 1860738631 } else { 13032756267696824044 } ,
363
+ hash( 100_u128 ) == if B32 { 1389515751 } else { 12003541609544029302 } ,
364
+ hash( u128 :: MAX ) == if B32 { 2156022013 } else { 11702830760530184999 } ,
365
365
366
366
hash( 0_usize ) == 0 ,
367
- hash( 1_usize ) == if B32 { 3001993707 } else { 12583873379513078615 } ,
368
- hash( 100_usize ) == if B32 { 3844759569 } else { 4008740938959785536 } ,
369
- hash( usize :: MAX ) == if B32 { 1293006356 } else { 5862870694197521576 } ,
367
+ hash( 1_usize ) == if B32 { 3001993707 } else { 12157901119326311915 } ,
368
+ hash( 100_usize ) == if B32 { 3844759569 } else { 16751747135202103309 } ,
369
+ hash( usize :: MAX ) == if B32 { 1293006356 } else { 6288842954450348564 } ,
370
370
}
371
371
}
372
372
373
373
#[ test]
374
374
fn signed ( ) {
375
375
test_hash ! {
376
- hash( i8 :: MIN ) == if B32 { 2000713177 } else { 5869058164817243095 } ,
376
+ hash( i8 :: MIN ) == if B32 { 2000713177 } else { 6684841074112525780 } ,
377
377
hash( 0_i8 ) == 0 ,
378
- hash( 1_i8 ) == if B32 { 3001993707 } else { 12583873379513078615 } ,
379
- hash( 100_i8 ) == if B32 { 3844759569 } else { 4008740938959785536 } ,
380
- hash( i8 :: MAX ) == if B32 { 3293686765 } else { 11731928859014764671 } ,
378
+ hash( 1_i8 ) == if B32 { 3001993707 } else { 12157901119326311915 } ,
379
+ hash( 100_i8 ) == if B32 { 3844759569 } else { 16751747135202103309 } ,
380
+ hash( i8 :: MAX ) == if B32 { 3293686765 } else { 12973684028562874344 } ,
381
381
382
- hash( i16 :: MIN ) == if B32 { 1073764727 } else { 8292620222579070801 } ,
382
+ hash( i16 :: MIN ) == if B32 { 1073764727 } else { 14218860181193086044 } ,
383
383
hash( 0_i16 ) == 0 ,
384
- hash( 1_i16 ) == if B32 { 3001993707 } else { 12583873379513078615 } ,
385
- hash( 100_i16 ) == if B32 { 3844759569 } else { 4008740938959785536 } ,
386
- hash( i16 :: MAX ) == if B32 { 2366738315 } else { 14155490916776592377 } ,
384
+ hash( 1_i16 ) == if B32 { 3001993707 } else { 12157901119326311915 } ,
385
+ hash( 100_i16 ) == if B32 { 3844759569 } else { 16751747135202103309 } ,
386
+ hash( i16 :: MAX ) == if B32 { 2366738315 } else { 2060959061933882993 } ,
387
387
388
- hash( i32 :: MIN ) == if B32 { 16384 } else { 5631751334026900245 } ,
388
+ hash( i32 :: MIN ) == if B32 { 16384 } else { 9943947977240134995 } ,
389
389
hash( 0_i32 ) == 0 ,
390
- hash( 1_i32 ) == if B32 { 3001993707 } else { 12583873379513078615 } ,
391
- hash( 100_i32 ) == if B32 { 3844759569 } else { 4008740938959785536 } ,
392
- hash( i32 :: MAX ) == if B32 { 1293022740 } else { 11494622028224421821 } ,
390
+ hash( 1_i32 ) == if B32 { 3001993707 } else { 12157901119326311915 } ,
391
+ hash( 100_i32 ) == if B32 { 3844759569 } else { 16751747135202103309 } ,
392
+ hash( i32 :: MAX ) == if B32 { 1293022740 } else { 16232790931690483559 } ,
393
393
394
- hash( i64 :: MIN ) == if B32 { 16384 } else { 524288 } ,
394
+ hash( i64 :: MIN ) == if B32 { 16384 } else { 33554432 } ,
395
395
hash( 0_i64 ) == 0 ,
396
- hash( 1_i64 ) == if B32 { 275023839 } else { 12583873379513078615 } ,
397
- hash( 100_i64 ) == if B32 { 1732383522 } else { 4008740938959785536 } ,
398
- hash( i64 :: MAX ) == if B32 { 1017998901 } else { 5862870694198045864 } ,
396
+ hash( 1_i64 ) == if B32 { 275023839 } else { 12157901119326311915 } ,
397
+ hash( 100_i64 ) == if B32 { 1732383522 } else { 16751747135202103309 } ,
398
+ hash( i64 :: MAX ) == if B32 { 1017998901 } else { 6288842954483902996 } ,
399
399
400
- hash( i128 :: MIN ) == if B32 { 16384 } else { 524288 } ,
400
+ hash( i128 :: MIN ) == if B32 { 16384 } else { 33554432 } ,
401
401
hash( 0_i128 ) == 0 ,
402
- hash( 1_i128 ) == if B32 { 1860738631 } else { 12885773367358079611 } ,
403
- hash( 100_i128 ) == if B32 { 1389515751 } else { 15751995649841559633 } ,
404
- hash( i128 :: MAX ) == if B32 { 2156005629 } else { 11423841400549517868 } ,
402
+ hash( 1_i128 ) == if B32 { 1860738631 } else { 13032756267696824044 } ,
403
+ hash( 100_i128 ) == if B32 { 1389515751 } else { 12003541609544029302 } ,
404
+ hash( i128 :: MAX ) == if B32 { 2156005629 } else { 11702830760496630567 } ,
405
405
406
- hash( isize :: MIN ) == if B32 { 16384 } else { 524288 } ,
406
+ hash( isize :: MIN ) == if B32 { 16384 } else { 33554432 } ,
407
407
hash( 0_isize ) == 0 ,
408
- hash( 1_isize ) == if B32 { 3001993707 } else { 12583873379513078615 } ,
409
- hash( 100_isize ) == if B32 { 3844759569 } else { 4008740938959785536 } ,
410
- hash( isize :: MAX ) == if B32 { 1293022740 } else { 5862870694198045864 } ,
408
+ hash( 1_isize ) == if B32 { 3001993707 } else { 12157901119326311915 } ,
409
+ hash( 100_isize ) == if B32 { 3844759569 } else { 16751747135202103309 } ,
410
+ hash( isize :: MAX ) == if B32 { 1293022740 } else { 6288842954483902996 } ,
411
411
}
412
412
}
413
413
@@ -422,13 +422,13 @@ mod tests {
422
422
#[ test]
423
423
fn bytes ( ) {
424
424
test_hash ! {
425
- hash( HashBytes ( & [ ] ) ) == if B32 { 2673204745 } else { 5175017818631658678 } ,
426
- hash( HashBytes ( & [ 0 ] ) ) == if B32 { 2948228584 } else { 11037888512829180254 } ,
427
- hash( HashBytes ( & [ 0 , 0 , 0 , 0 , 0 , 0 ] ) ) == if B32 { 3223252423 } else { 6891281800865632452 } ,
428
- hash( HashBytes ( & [ 1 ] ) ) == if B32 { 2943445104 } else { 4127763515449136980 } ,
429
- hash( HashBytes ( & [ 2 ] ) ) == if B32 { 1055423297 } else { 11322700005987241762 } ,
430
- hash( HashBytes ( b"uwu" ) ) == if B32 { 2699662140 } else { 2129615206728903013 } ,
431
- hash( HashBytes ( b"These are some bytes for testing rustc_hash." ) ) == if B32 { 2303640537 } else { 5513083560975408889 } ,
425
+ hash( HashBytes ( & [ ] ) ) == if B32 { 2673204745 } else { 17606491139363777937 } ,
426
+ hash( HashBytes ( & [ 0 ] ) ) == if B32 { 2948228584 } else { 5448590020104574886 } ,
427
+ hash( HashBytes ( & [ 0 , 0 , 0 , 0 , 0 , 0 ] ) ) == if B32 { 3223252423 } else { 16766921560080789783 } ,
428
+ hash( HashBytes ( & [ 1 ] ) ) == if B32 { 2943445104 } else { 5922447956811044110 } ,
429
+ hash( HashBytes ( & [ 2 ] ) ) == if B32 { 1055423297 } else { 5229781508510959783 } ,
430
+ hash( HashBytes ( b"uwu" ) ) == if B32 { 2699662140 } else { 7168164714682931527 } ,
431
+ hash( HashBytes ( b"These are some bytes for testing rustc_hash." ) ) == if B32 { 2303640537 } else { 2349210501944688211 } ,
432
432
}
433
433
}
434
434
0 commit comments