* core, eth, trie: bloom filter for trie node dedup during fast sync * eth/downloader, trie: address review comments * core, ethdb, trie: restart fast-sync bloom construction now and again * eth/downloader: initialize fast sync bloom on startup * eth: reenable eth/62 until we properly remove it
		
			
				
	
	
		
			36 lines
		
	
	
		
			928 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			928 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| //
 | |
| // Package hamming distance calculations in Go
 | |
| //
 | |
| // https://github.com/steakknife/hamming
 | |
| //
 | |
| // Copyright © 2014, 2015, 2016, 2018 Barry Allard
 | |
| //
 | |
| // MIT license
 | |
| //
 | |
| //
 | |
| // Usage
 | |
| //
 | |
| // For functions named CountBits.+s?.  The plural forms are for slices.
 | |
| // The CountBits.+ forms are Population Count only, where the bare-type
 | |
| // forms are Hamming distance (number of bits different) between two values.
 | |
| //
 | |
| // Optimized assembly .+PopCnt forms are available on amd64, and operate just
 | |
| // like the regular forms (Must check and guard on HasPopCnt() first before
 | |
| // trying to call .+PopCnt functions).
 | |
| //
 | |
| //    import 'github.com/steakknife/hamming'
 | |
| //
 | |
| //    // ...
 | |
| //
 | |
| //    // hamming distance between values
 | |
| //    hamming.Byte(0xFF, 0x00) // 8
 | |
| //    hamming.Byte(0x00, 0x00) // 0
 | |
| //
 | |
| //    // just count bits in a byte
 | |
| //    hamming.CountBitsByte(0xA5), // 4
 | |
| //
 | |
| // Got rune? use int32
 | |
| // Got uint8? use byte
 | |
| //
 | |
| package hamming
 |