Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r76533 - in branches/release: . libs libs/functional libs/functional/hash/doc
From: dnljms_at_[hidden]
Date: 2012-01-15 15:49:41


Author: danieljames
Date: 2012-01-15 15:49:40 EST (Sun, 15 Jan 2012)
New Revision: 76533
URL: http://svn.boost.org/trac/boost/changeset/76533

Log:
Hash: Merge documentation changes.
Properties modified:
   branches/release/ (props changed)
   branches/release/libs/ (props changed)
   branches/release/libs/functional/ (props changed)
Text files modified:
   branches/release/libs/functional/hash/doc/hash.qbk | 2 +-
   branches/release/libs/functional/hash/doc/rationale.qbk | 20 ++++++++++----------
   2 files changed, 11 insertions(+), 11 deletions(-)

Modified: branches/release/libs/functional/hash/doc/hash.qbk
==============================================================================
--- branches/release/libs/functional/hash/doc/hash.qbk (original)
+++ branches/release/libs/functional/hash/doc/hash.qbk 2012-01-15 15:49:40 EST (Sun, 15 Jan 2012)
@@ -1,5 +1,5 @@
 [library Boost.Functional/Hash
- [quickbook 1.4]
+ [quickbook 1.5]
     [authors [James, Daniel]]
     [copyright 2005 2006 2007 2008 Daniel James]
     [purpose A TR1 hash function object that can be extended to hash user

Modified: branches/release/libs/functional/hash/doc/rationale.qbk
==============================================================================
--- branches/release/libs/functional/hash/doc/rationale.qbk (original)
+++ branches/release/libs/functional/hash/doc/rationale.qbk 2012-01-15 15:49:40 EST (Sun, 15 Jan 2012)
@@ -5,10 +5,10 @@
 
 [section:rationale Rationale]
 
-The rationale for the design can be found in the original design
-[footnote issue 6.18 of the __issues__ (page 63)], but an issue that
-occasionally comes up is the quality of the hash function, so that
-demands some more attention.
+The rationale can be found in the original design
+[footnote issue 6.18 of the __issues__ (page 63)].
+
+[heading:quality Quality of the hash function]
 
 Many hash functions strive to have little correlation between the input
 and output values. They attempt to uniformally distribute the output
@@ -16,23 +16,23 @@
 attempt. In fact, for integers, the result of the hash function is often
 just the input value. So similar but different input values will often
 result in similar but different output values.
-
 This means that it is not appropriate as a general hash function. For
 example, a hash table may discard bits from the hash function resulting
 in likely collisions, or might have poor collision resolution when hash
 values are clustered together. In such cases this hash function will
 preform poorly.
 
-So why not implement a higher quality hash function? Well, the standard
-makes no such guarantee, it just requires that the hashes of two
-different values are unlikely to collide. Containers or algorithms
+But the standard has no such requirement for the hash function,
+it just requires that the hashes of two different values are unlikely
+to collide. Containers or algorithms
 designed to work with the standard hash function will have to be
 implemented to work well when the hash function's output is correlated
 to its input. Since they are paying that cost a higher quality hash function
 would be wasteful.
 
 For other use cases, if you do need a higher quality hash function,
-there are several options
+then neither the standard hash function or `boost::hash` are appropriate.
+There are several options
 available. One is to use a second hash on the output of this hash
 function, such as [@http://www.concentric.net/~ttwang/tech/inthash.htm
 Thomas Wang's hash function]. This this may not work as
@@ -47,4 +47,4 @@
 representation, which is not always the case (e.g. for floating point
 values).
 
-[endsect]
\ No newline at end of file
+[endsect]


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk