[#BloombergLP-bslh]
= xref:BloombergLP.adoc[BloombergLP]::bslh
:relfileprefix: ../
:mrdocs:

Namespace containing modular hashing algorithms and utilities&period;

== Types

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslh/DefaultHashAlgorithm.adoc[`DefaultHashAlgorithm`] 
| This class wraps an unspecified default hashing algorithm that is appropriate for general purpose use such as generating hashes for a hash table&period;
| xref:BloombergLP/bslh/DefaultSeededHashAlgorithm.adoc[`DefaultSeededHashAlgorithm`] 
| This class wraps an unspecified default hashing algorithm, which takes a seed, that is appropriate for general purpose use such as generating hashes for a hash table&period;
| xref:BloombergLP/bslh/FibonacciBadHashWrapper.adoc[`FibonacciBadHashWrapper`] 
| This class provides a hash algorithm wrapper that improves the distribution of varying bits from the `HASH` applied to the `KEY`&period;
| xref:BloombergLP/bslh/Hash-07.adoc[`Hash`] 
| This struct wraps the (template parameter) type `HASH&lowbar;ALGORITHM` in an interface that satisfies the `hash` requirements of the C&plus;&plus;11 standard&period;
| xref:BloombergLP/bslh/Hash_AdlWrapper.adoc[`Hash&lowbar;AdlWrapper`] 
| This `class` is a wrapper that is useful in the case of `HASH&lowbar;ALGORITHM` not being in the `bslh` namespace, which can be problematic for ADL lookup of `bslh&colon;&colon;hashAppend`&period; Wrapping a hash algorithm in this wrapper, which is called inline, effectively forwards the algorithm into the `bslh` namespace&period;
| xref:BloombergLP/bslh/SeedGenerator.adoc[`SeedGenerator`] 
| This class template implements a seed generator which takes a user supplied random number generator and uses it to generate an arbitrary length seed&period; Note that this type inherits from the (template parameter) type `RANDOM&lowbar;NUM&lowbar;GEN` to take advantage of the empty&hyphen;base optimization&period;
| xref:BloombergLP/bslh/SeededHash.adoc[`SeededHash`] 
| This class wraps the (template parameter) `HASH&lowbar;ALGORITHM`, which requires a seed, in an interface that satisfies the `hash` requirements of the C&plus;&plus;11 standard&period; The (template parameter) type `SEED&lowbar;GENERATOR` will be used to generate the seed required by `HASH&lowbar;ALGORITHM`&period;
| xref:BloombergLP/bslh/SipHashAlgorithm.adoc[`SipHashAlgorithm`] 
| This class wraps an implementation of the &quot;SipHash&quot; algorithm in an interface that is usable in the modular hashing system in `bslh`&period;
| xref:BloombergLP/bslh/SpookyHashAlgorithm.adoc[`SpookyHashAlgorithm`] 
| This class wraps an implementation of the &quot;SpookyHash&quot; hash algorithm in an interface that is usable in the modular hashing system in `bslh`&period;
| xref:BloombergLP/bslh/SpookyHashAlgorithmImp.adoc[`SpookyHashAlgorithmImp`] 
| This class wraps an implementation of Bob Jenkin&apos;s &quot;SpookyHash&quot; in a BDE&hyphen;style component&period; For more information, see http&colon;&sol;&sol;burtleburtle&period;net&sol;bob&sol;hash&sol;spooky&period;html &period;
| xref:BloombergLP/bslh/WyHashIncrementalAlgorithm.adoc[`WyHashIncrementalAlgorithm`] 
| This class wraps an implementation of the &quot;WyHash&quot; hash algorithm in an interface that is usable in the modular hashing system in `bslh`&period;
| xref:BloombergLP/bslh/hashTuple_Util-02.adoc[`hashTuple&lowbar;Util`] 
| Component&hyphen;private utility for hashing tuple elements in reverse order&period;
|===


== Functions

[cols="1,4"]
|===
| Name| Description
| xref:BloombergLP/bslh/hashAppend-0c.adoc[`hashAppend`] 
| `hashAppend` overloads
|===



[.small]#Created with https://www.mrdocs.com[MrDocs]#
