text:
Talk:Hermetic Order of the Golden Dawn/Archive 1

QUOTE more recent work seems to suggest that Dr. Westcott was a considerable influence END QUOTE What is this research? This whole article would benefit from proper academic referencing.

Reply: Done.

Famous members of the Hermetic Order of the Golden Dawn have included W.B. Yeats and Aleister Crowley -- is this correct? (If so, could someone please add it to article.)

Thelema links?
I've removed the links to the Thelemapedia and the Free Encyclopedia of Thelema homepages. Sites with such a general Thelemic orientation do not clarify issues for the casual encyclopedia user. Thelema has a different ethic, and draws from a wider array of traditions, than the GD. I wouldn't object if one were to deep-link to those sites, selecting articles that explain the relationship between the GD and Thelema. Alternatively, the links could be reverted intact if one were to discuss in this article Thelema and its relevance to the GD. Vorpal Suds 05:56, 10 May 2005 (UTC)

hess
hi everybody, sorry for my english ;-D

I've read something about the contacts between Rudolf Hess, the Thule Society and the Golden Dawn. On the french wiki, they said that Hess was a Golden Dawn member. Does know anybody more on that point? thanks Topf of fr 07:13, 17 May 2005 (UTC)

Reply

When the GD was disbanded in 1903, Hess was 9 years old.

I would be surprised to find the Thule Society and the GD completely unrelated, as the GD was watched closely by groups in the rest of Europe and in the very small occult scene of that time the networking had to be pretty dense. But as their main ideas are pretty much divergent (detailed judeo-christian-masonic system vs. a back to the roots rage against anything jewish, christian, or masonic), I find it extremely hard to believe they were connected in any deeper way. Denial 15:32, 17 May 2005 (UTC)

Repeated attempts to insert the same off-topic POV text
All of these edits pasted into the article the same text, which is both POV ("particularly significant") and off topic (as it does not refer to the historic Golden Dawn). In a remarkable act of boneheadedness, the anonymous vandal has repeatedly overwritten the link to Golden Dawn tradition, where the same text would still be POV, but at least on topic. (This is mostly a note to admins who may want to check what the frequent reverts mean.)
 * 00:31, 14 December 2005 65.141.49.66
 * 14:39, 8 December 2005 65.139.116.143
 * 02:43, 8 December 2005 65.139.117.103
 * 21:14, 5 December 2005 65.139.116.13
 * 18:31, 23 November 2005 65.139.116.24
 * 01:17, 22 November 2005 65.139.117.205
 * 03:33, 21 November 2005 65.139.117.34
 * 01:29, 15 November 2005 65.139.117.197
 * 01:42, 10 November 2005 65.139.117.63
 * 00:56, 9 November 2005 65.139.116.235
 * 13:06, 6 November 2005 65.139.116.138
 * 16:10, 31 October 2005 65.139.117.157
 * 23:26, 30 October 2005 65.139.117.80

 * Have you checked this page to report vandalism? --Jdemarcos 23:05, 23 November 2005 (UTC)

 * That page is to be used "If you witness a particular user or IP address repeatedly engaging in vandalism" (emphasis original). I don't think that applies here, because the IPs shift, if in a very small range in West Palm Beach, FL. Still blocking all of that range would be too much to ask. I'll rather write an email about it to The Hermetic Order of the Golden Dawn, Inc., which just happens to be Florida-based.Denial 23:42, 23 November 2005 (UTC)

 * I guess that these addresses belong to a single ISP that uses dynamic IP address assignment, a system that provide a different IP address within a limited range every time the PC connects to the internet. But this is very probably a single user. You may also check with the ISP that owns those addresses. --Jdemarcos 10:37, 24 November 2005 (UTC)

 * The Florida corporation is not the group promoted by the repeated POV edits. Google Groups searches in alt.magick for "Griffin + nazi", "Cicero + mafia", etc., will show a flame war in progress between the (presumed) fans and supporters of the group promoted by the POV posts, and the (presumed) fans and supporters of the Florida corporation. Those interested in maintaining the NPOV content of Golden Dawn related articles would be well served to watch all of these articles. --Cheech Wizard  29 July 2024
 * Would it be worth it to add acknowledgement of this dispute to the page, in a factual NPOV way? Or would that just encourage bad behavior? DenisMoskowitz 18:14, 14 December 2005 (UTC)
 * Now one of the other groups, the Esoteric Order of the Golden Dawn (run by Robert Zink) has been making their own POV edits to the entry, including lots of links to their own website in the text being offered up as "truth in the Golden Dawn". I've tried to edit the entry in a facutal POV way, without promoting one group over another, but just as Griffin's group was doing before, Zink's group is doing now.

 * I wrote a factual account of the GD history that has been published since 2002, which has many outside links going to it. It can be seen at: http://www.osogd.org/library/biscuits/history.html. My own group is affiliated with the Florida Corporation, but I did not even make a special paragraph describing ny group, much less blatantly promoting it.

 * I have based my edit of the entry on verifiable scholarship from sources like R. A. Gilbert and Ellic Howe, not claims of "secret oral transmissions" and unsupportable assertions that the founders had temples in the USA, from which Mr. Zink's organization makes specious claims of descent. The edits their group has made also includes some blatant factual errors, such as claiming Bram Stoker belonged to the Golden Dawn.

 * I have already made a request for meditaion to the Mediation Cabal, and I have contacted Mr. Zink via e-mail to work out a solution. I have not yet received a reply. But I will continue to re-edit the article until someone at Wiki comes to a decision about what to do. Joseph Max 29 July 2024

Cleaned Up Non-POV Version Submitted
In response to the clean-up request, I've submitted an expanded article with more references and topic headers/TOC. I hope it doens't get anonymously reverted to the POV version again.

Joseph Max 29 July 2024

Reasons for 1/12/2006 Revision
It looks like there is some controversy surrounding this article, so I'd like to explain some of the minor revisions that I have done with this article.

1. In the Background section, no mention was previously made concerning Christian or Jewish mysticism, but the Hermetic Order of the Golden Dawn's influence on these areas of thought was enormous, so links were made to these topics.

2. In the Origins section, the impression is made that Mathers, Westcott and Woodman were Freemasons throughout their tenure with the Order of the Golden Dawn, but this is simply untrue. A sentence was added to clarify Mathers' relationship with Freemasonry.

3. The structure of all Golden Dawn ritual is based on the Cipher Manuscripts. In The Cipher Manuscripts section, this fact is unclear, so a sentence was added to clarify.

4. In the Sources of the Cipher Manuscripts section, mention is made of the possibility that Fraulein Sprengel could have been a code word, but it does not explain why it could have been a code word. Thus, a sentence was added which explains how the word 'Sprengel' may have been short for 'Sprengelrecht'.

5. My two primary sources for this material were Ithell Colquhoun's book, The Sword of Wisdom, and an online article called The Truth About the Cipher Manuscripts. Although I do see that someone objected to its use in someone else's previous revisions, this is simply where I obtained some of the information that I have.

Frater HH 29 July 2024

Response to Frater HH
Very well, Frater HH -- now we're getting somewhere. I agree with your adding the translation of name "Sprengel" and its significance.

I did send a message to Mr. Zink regarding this controversy, but he has not answered. But it seems my advice to have someone in his group actually register with Wikipedia, instead of posting anonymous edits, was taken to heart.

If you like, you can e-mail me at: maxx58585@yahoo.com and we can discuss this matter fully.

What I still take issue with you over are the following edits:

"However, after becoming a member of the Golden Dawn, S.L. Macgregor Mathers resigned from Freemasonry." This is a parenthetical comment at best, unless you have it in mind to discount Freemasonry as an influence on the GD, which is ridiculous. I don't think Mathers IMMEDIATELY resigned from the UGLE, which is what you seem to be implying here. I don't even think it's worth mentioning, but if you do you should attach a time frame to it -- for example, after he moved to Paris. What reference do you have that shows if and when he resigned from the Grand Lodge and/or the SRIA? (I've never found any, but this could be checked in Masonic records.) Maybe he just stopped paying his dues and went inactive. What it seems you're doing here is a backhanded slap at Masonry, trying to separate the GD from its genuine Masonic roots, and I've never understood why you guys are so obsessed with doing that, except possibly due to your leader's Catholic sympathies.

"The Cipher Manuscripts and other documents called the Z documents provide the basis of the Golden Dawn tradition, and define the structure of Golden Dawn ritual." This is "biased POV" in the language of Wikipedia. In other words, it's what YOUR Order purports to believe, but it is not in any way universally accepted. No reputable, published GD scholar recognizes the Z Documents as being of the same foundational nature as the Cipher. Neither Gilbert nor Howe has ever advanced this idea. Not even Cicero, who sticks to a very traditional GD form, will back you guys on this one. In his "The Essential Golden Dawn', there is a whole chapter on the Cipher, which begins, "No history of the Golden Dawn can be given without some reference to the Cipher Manuscript -- the enigmatic document upon which the rituals and the knowledge lectures of the Golden Dan are based." Period. The Z Docs are mentioned in passing only twice, and not as a fundamental basis of the GD. What you're trying to do with this one is de-legitimize any group  as being "not real Golden Dawn" if they don't revere Mathers and the Z Docs like you do. In other words, it's a reflection of an exclusively biased POV, and has no place in a general encyclopedia article.

What the Z Docs really are is an exegesis by Mathers of the original system of the Cipher. The Z Docs are NOT in any way "original materials" in the way the Ciphers are, because the Ciphers pre-dated the establishment of the original Isis-Urania Temple No. 3, whereas the Z Docs were created AFTER it's establishment. They are Mathers' interpretation of the Ciphers, but they are in no way the ONLY possible interpretation. Even if you buy into the mythology given by Westcott of Fraulien Sprengel and the "German Rosicrucians", as your group does, your claim doesn't stand up. Part of that mythology (specifically mentioned in the Sprengel letters) is the existence of a GD Temple PRIOR to the one created by Westcott and Mathers, referred to as "Hermanubis Temple No. 2". This being the case, then a GD Lodge was in fact formed BEFORE the Z Documents were written by Mathers, even before Mathers had ever heard of the Golden Dawn! Logically, therefore, the Z Docs are not "foundational documents", since a GD Temple (recognized by Sprengel) was founded before they existed!

Be aware I'll continue to keep eliminating this edit to the article, and I'll make my case to the Wikipedia Mediation Cabal if I have to. I expect to hear from them in three days. If you want to describe the Z Documents as part of Mathers' work to refine and develop the Cipher materials into a workable form, I'll go along with that, but not with any idea that they are universally accepted as foundational. That is YOUR group's opinion only, not one shared generally by the rest of the Golden Dawn community, and you have no right to present it as if it is.

"(This should not, however, detract from the importance of the Cipher Manuscripts.)" Expressions like this are OPINIONS, not statements of fact. The preceding paragraph that I wrote states the FACTS: "The actual material itself described in the Manuscript is of known origins. Hermeticism, Alchemy, Qabalah, Astrology and Tarot were certainly not unknown to 19th century scholars of the Magical arts; the Cipher is a compendium of previously known Magical traditions. The basic structure of the rituals and the names of the Grades are based on those of the S.R.I.A." The appending of an OPINION on "importance" is yet again, a biased POV.

" Many Golden Dawn scholars believe that Mathers received his materials from the "Secret Chiefs" connected to his German Rosicrucian predecessors..." You changed "some" to "many", and added the appellation "scholars" to what I wrote. I challenge you to find ANY reputable scholar of GD history who has EVER given any credence to Mathers' claims of contacts with these "Secret Chief" representatives. Howe does not, nor does Gilbert, nor Kuntz, nor Runyon, nor King, nor Cicero. They don't even claim that these "Secret Chiefs" existed at all! So who are these "many scholars"? The only "scholars" claiming this are those who belong to groups who have a religious faith in their actual existence, such as your group and Mr. Griffin's.

"Some believe that S.L. Macgregor Mathers and his wife Moina invoked the materials, and he refined and developed them, as he had with the Cipher Manuscripts." You replaced my descriptor of "channeled" with "invoked." That is non-sequitur. "Invoking" is something you do with a spirit or deity, not with textural material. "Channeling" is the proper term for receiving raw material in a trance state from a spiritual source, which is what she (and you claim also Mathers himself too, but I won't quibble about that point) actually did. It's unfortunate that "channeling" has acquired a somewhat touchy-feely "New Age" connotation, but it's the proper descriptive term.

Adding Ithell Colquhoun's book to the references was a good idea, as it's certainly influential. But adding your own website link, "Truth About the Cipher Manuscripts", to the list of actual published BOOKS on the subject is, once again, promoting a biased POV. You already have a link to your "Golden Dawn Research Center" in the article, and someone can find that essay and others promoting your POV on your website. But it has no standing to be included as a primary reference in a general encyclopedia article.

I will be making the above factual corrections to the article, and I hope you will contact me soon to discuss these matters so we can come to a fraternal solution. Be aware that refusing to even try to discuss these issues between us will not put you in a good light with Wikipedia's Mediators.

Note: this message has been posted to Fraterhh's talk page, and also to the "Hermetic Order of the Golden Dawn" talk page.

- Joseph Max [Jmax555]

Z Documents
No matter how you understand the Z documents, no discussion of the Golden Dawn tradition would be complete without mentioning them. Thus, I included a brief quote from Regardie's Golden Dawn.

--Frater HH

Copyrighted materials are not allowed on Wikipedia
This is far too long of a passage to qualify as "fair use", Frater HH.

You have also put the article size over Wikipedia's 30 Kbyte limit.

As for your assertion that "no discussion of the Golden Dawn tradition would be complete without mentioning them", in the entire book "The Essential Golden Dawn" by Chic and Tabitha Cicero, considered by many as one of the basic textbooks for GD studies, the Z Documents get "mentioned" in TWO SENTENCES, each in a different part of the book! By contrast, the Cipher Manuscript gets its own chapter heading.

Write your own Wikipedia article on the Z Documents if you wish, and put a link to it in the text. So long as you don't try to maintain that they are equally fundamental to the tradition as the Ciphers, I won't complain.

- Joseph Max [JMax555]

Slow down fellows
As to the section JMax555 removed. I was going to do the same, not because I am disputing it, but because the formating is no consistent with WP:STYLE. It also is not in accord with WP:NPOV. Fraterhh, I'm not passing judgement on what you are saying in this section, I for one welcome all contributions to Wikipedia, but you need to familiarize yourself with Wikipedia policies. In this case especially to layout and text formatting. By putting the spaces at the beginning of your paragraphs you have introduced formatting that you probably weren't aware of. Perhaps you should try your edits in the Sandbox until you have become familiar with how thing work. I'm trying to avoid taking sides in this edit war, but every one involved needs to adhear to policy. What's going on is making us all look like squabbling children.--◀Pucktalk▶ 16:13, 13 January 2006 (UTC)

Revision Concerning Second Order
Concerning the Second Order, the name of the Second Order was corrected, and a sentence was added which explained the connection between the First and Second Orders.

Links Added
Links to the Cipher Manuscripts were added in a new section called External Links. More links are welcome; hopefully, these links will be kept through the gauntlet of criticism... —The preceding unsigned comment was added by 24.22.204.79 (talk • contribs) 2006-01-14 22:26:55 (UTC).

 * If you're talking about the little bout of reverts on Golden Dawn tradition, it was because the link that actually went to fascimiles of the Cipher Manuscripts had been deleted and a link to EOGD's speculations about it was put in its place with out changing the wording Photocopies and the translation of the original Cipher Manuscripts can be found on-line at. If there were actually copies there I probably wouldn't have had any problem with it, but there isn't, at least not at that address. Putting the link in the External link section is OK, though at one point we've had three or four links on the same page all going the the EOGD which is a bit excessive if you ask me.

 * I didn't have a bone to pick until a few days ago when a change on one of the pages I watch lead me to realize there have been many anon and new users over the past few months whose only contributions are adding links to EOGD web sites and editing articles to introduce a pro EOGD POV on occult and magick related articles. Whether or not this a conscious policy coordinated by the EOGD's leadership or not, it does not make the organization look good in the eyes of someone like me who is relative novice.  It certainly gives the appearance of a wannabe grasping for attention.  If the EOGD is as wide spread and established as it claims to be it shouldn't be concerned about establishing a presence here, especially not by what could be interpreted as link spam.--◀Pucktalk▶ 23:02, 14 January 2006 (UTC)

More POV
Dr. John Gold Has joined in adding biased POV. I don't have the energy to chase you guys around any more tonight. I just hope the mediation process has more success here than I have. Have fun.--◀Pucktalk▶ 06:16, 15 January 2006 (UTC)

 * I have reverted it yet again, to the last version that Frater HH submitted (which was an edit of my version, which I was willing to let stand in the hopes of ending the edit-war.) But here we go again! Mediators, please help! JMax555 07:59, 15 January 2006 (UTC)

I can live with these

Barthimaeus seems to be doing a good balancing act. I wouldn't mind hearing from him on the talk pages, though, or having him leave an edit summary when he makes his changes.--◀Pucktalk▶ 01:09, 16 January 2006 (UTC)

Added Links
I added the links from the Golden Dawn tradition to the Hermetic Order of the Golden Dawn page, since they both would benefit from the links. Frater HH 20:30 16 January 2006 (UTC)

I can live with these too
It's passed through the JMax, FraterHH and Barthimaeus filters now. How about the anons leave it alone! - JMax555 00:45, 18 January 2006 (UTC)

Still seeking mention of Z docs
I changed one of the sentences concerning the Cipher manuscripts to at least reflect the existence of the Z documents.

--Fraterhh

 * My only issue there would be is many justified, or would some be better. I honestly don't know.  In my own limited experience, the Z documents are something I had only been aware of tangentially, but one of the grand high mucky-mucks at the O.T.O. lodge were I hang out, someone whom I have a measure of respect for, seems to place a great deal of value on them.  Whether he considers them foundational or simply a good reference I couldn't say.  Obviously they are significant, but as to how much and to how many I'm in the dark.--◀Pucktalk▶ 22:25, 19 January 2006 (UTC)
 * In certain GD circles at least the Z docs are extremely important. They were not foundational to the formation of the original order in the same way as the Cipher MSS but they are key to understanding the system. I think they are worthy of a separate article but they are probably a bit too esoteric (pun intended) for the article at hand. Barthimaeus 23:16, 19 January 2006 (UTC)

Branched the Cipher Manuscripts section
I branched out the Cipher Manuscripts section into its own article. I wanted to see more information on the ciphers added and they were already given a little too much space in the main article. Hope the general consensus will approve. I also don't think we should merge this article with GD Tradition, and propose to remove the "merge" tag at the top of the page. Barthimaeus 23:16, 19 January 2006 (UTC)
 * On the Cipher Manuscripts I agree, I'd like to see more, and I'm too lazy to do the work myself :). As to the merge I could go either way.--◀Pucktalk▶ 00:21, 20 January 2006 (UTC)

Removing Link Redundancy
I moved all the links directly related to groups practicing the GD tradition over to the "Golden Dawn Tradition" article, and replaced them here with links to articles from non-affiliated sources, such as the About.com, Witchvox and Llewellyn encyclopedias. - JMax555 05:21, 4 February 2006 (UTC)

Bias toward "HOGD/A+O" is not the same as "non-biased"
The clear promotion of one group by 69.219.103.195 in the edit-bombing of this article, with with long-winded expounding of that group's unsupported "theories" about GD history, is not "non-bias". No amount of Orwellian word-twisting can make it so, since it's so damn obvious what's going on. We thought this edit-war had settled down, but now it looks like it needs at least semi-protection from the latest wave of self-promoting historical revisionists.

It wouldn't be, if that's what were happening, but it's not.
This is reminiscent of right-wing extremists accusing the American mainstream media of "liberal bias". To some extreme conservatives, anything NOT extremely conservative is, by automatic definition, "liberal bias."

The article as revised to NPOV gives the basic history of philosophy of the Order as known and described by respected, published authorities in the field. If the "HOGD, Inc." happens to agree with respected, published authorities in the field, that is not "bias". Kephera, please familiarize yourself with Wikipedia guidelines for Verifiability: "The threshold for inclusion in Wikipedia is verifiability, not truth. This means that we only publish material that is verifiable with reference to reliable, published sources."

See: http://en.wikipedia.org/wiki/Wikipedia:Verifiability

None of the revisionist "theories" that keep being edited in by Kephera and others can be verified by reference to any PUBLISHED authoritative source. (See the reading list for examples, such as R.A. Gilbert and Ellic Howe.) Other parts of the Edit that Kephera keeps inserting (such as references to a "Third Order" and it's description) pertain ONLY to ONE particular Golden Dawn order's beliefs, and are not universally accepted by other practitioners or verified by reliable, published experts.

The "political" position of the group Kephera represents, "HOGD/A+O", is that they are the one and only true and authentic Golden Dawn order. They are in fact a small minority of the Golden Dawn community. Their revisionist "history" of the Order is not verifiable, except by their claims of being in possession of "inner order secrets" which they refuse to publish or present to the academic community for peer review and independent verification. Until this happens, such information is not acceptable for inclusion in a general purpose encyclopedia article.

The External Links in the "Golden Dawn Tradition" article includes a link for the "HOGD/A+O" organization. Interested parties can follow that link and get their unique, minority POV.


text:
Hash function

A hash function is any function that can be used to map data of arbitrary size to fixed-size values, though there are some hash functions that support variable length output. The values returned by a hash function are called hash values, hash codes, hash digests, digests, or simply hashes. The values are usually used to index a fixed-size table called a hash table. Use of a hash function to index a hash table is called hashing or scatter storage addressing.

Hash functions and their associated hash tables are used in data storage and retrieval applications to access data in a small and nearly constant time per retrieval. They require an amount of storage space only fractionally greater than the total space required for the data or records themselves. Hashing is a computationally and storage space-efficient form of data access that avoids the non-constant access time of ordered and unordered lists and structured trees, and the often exponential storage requirements of direct access of state spaces of large or variable-length keys.

Use of hash functions relies on statistical properties of key and function interaction: worst-case behaviour is intolerably bad but rare, and average-case behaviour can be nearly optimal (minimal collision).

Hash functions are related to (and often confused with) checksums, check digits, fingerprints, lossy compression, randomization functions, error-correcting codes, and ciphers. Although the concepts overlap to some extent, each one has its own uses and requirements and is designed and optimized differently. The hash function differs from these concepts mainly in terms of data integrity. Hash tables may use Non-cryptographic hash functions, while cryptographic hash functions are used in cybersecurity to secure sensitive data such as passwords.

Overview
In a hash table, a hash function takes a key as an input, which is associated with a datum or record and used to identify it to the data storage and retrieval application. The keys may be fixed length, like an integer, or variable length, like a name. In some cases, the key is the datum itself. The output is a hash code used to index a hash table holding the data or records, or pointers to them.

A hash function may be considered to perform three functions: A good hash function satisfies two basic properties: 1) it should be very fast to compute; 2) it should minimize duplication of output values (collisions). Hash functions rely on generating favourable probability distributions for their effectiveness, reducing access time to nearly constant. High table loading factors, pathological key sets and poorly designed hash functions can result in access times approaching linear in the number of items in the table. Hash functions can be designed to give the best worst-case performance, good performance under high table loading factors, and in special cases, perfect (collisionless) mapping of keys into hash codes. Implementation is based on parity-preserving bit operations (XOR and ADD), multiply, or divide. A necessary adjunct to the hash function is a collision-resolution method that employs an auxiliary data structure like linked lists, or systematic probing of the table to find an empty slot.
 * Convert variable-length keys into fixed length (usually machine word length or less) values, by folding them by words or other units using a parity-preserving operator like ADD or XOR.
 * Scramble the bits of the key so that the resulting values are uniformly distributed over the keyspace.
 * Map the key values into ones less than or equal to the size of the table

Hash tables
Hash functions are used in conjunction with hash tables to store and retrieve data items or data records. The hash function translates the key associated with each datum or record into a hash code, which is used to index the hash table. When an item is to be added to the table, the hash code may index an empty slot (also called a bucket), in which case the item is added to the table there. If the hash code indexes a full slot, some kind of collision resolution is required: the new item may be omitted (not added to the table), or replace the old item, or it can be added to the table in some other location by a specified procedure. That procedure depends on the structure of the hash table: In chained hashing, each slot is the head of a linked list or chain, and items that collide at the slot are added to the chain. Chains may be kept in random order and searched linearly, or in serial order, or as a self-ordering list by frequency to speed up access. In open address hashing, the table is probed starting from the occupied slot in a specified manner, usually by linear probing, quadratic probing, or double hashing until an open slot is located or the entire table is probed (overflow). Searching for the item follows the same procedure until the item is located, an open slot is found or the entire table has been searched (item not in table).

Specialized uses
Hash functions are also used to build caches for large data sets stored in slow media. A cache is generally simpler than a hashed search table since any collision can be resolved by discarding or writing back the older of the two colliding items.

Hash functions are an essential ingredient of the Bloom filter, a space-efficient probabilistic data structure that is used to test whether an element is a member of a set.

A special case of hashing is known as  geometric hashing or the grid method. In these applications, the set of all inputs is some sort of metric space, and the hashing function can be interpreted as a partition of that space into a grid of cells. The table is often an array with two or more indices (called a grid file, grid index, bucket grid, and similar names), and the hash function returns an index tuple. This principle is widely used in computer graphics, computational geometry and many other disciplines, to solve many proximity problems in the plane or in three-dimensional space, such as finding closest pairs in a set of points, similar shapes in a list of shapes, similar images in an image database, and so on.

Hash tables are also used to implement associative arrays and dynamic sets.

Uniformity
A good hash function should map the expected inputs as evenly as possible over its output range. That is, every hash value in the output range should be generated with roughly the same probability. The reason for this last requirement is that the cost of hashing-based methods goes up sharply as the number of collisions—pairs of inputs that are mapped to the same hash value—increases. If some hash values are more likely to occur than others, a larger fraction of the lookup operations will have to search through a larger set of colliding table entries.

This criterion only requires the value to be uniformly distributed, not random in any sense. A good randomizing function is (barring computational efficiency concerns) generally a good choice as a hash function, but the converse need not be true.

Hash tables often contain only a small subset of the valid inputs. For instance, a club membership list may contain only a hundred or so member names, out of the very large set of all possible names. In these cases, the uniformity criterion should hold for almost all typical subsets of entries that may be found in the table, not just for the global set of all possible entries.

In other words, if a typical set of $m$ records is hashed to $n$ table slots, the probability of a bucket receiving many more than $m/n$ records should be vanishingly small. In particular, if $m$ is less than $n$, very few buckets should have more than one or two records. A small number of collisions is virtually inevitable, even if $n$ is much larger than $m$ – see the birthday problem.

In special cases when the keys are known in advance and the key set is static, a hash function can be found that achieves absolute (or collisionless) uniformity. Such a hash function is said to be perfect. There is no algorithmic way of constructing such a function - searching for one is a factorial function of the number of keys to be mapped versus the number of table slots they're tapped into. Finding a perfect hash function over more than a very small set of keys is usually computationally infeasible; the resulting function is likely to be more computationally complex than a standard hash function and provides only a marginal advantage over a function with good statistical properties that yields a minimum number of collisions. See universal hash function.

Testing and measurement
When testing a hash function, the uniformity of the distribution of hash values can be evaluated by the chi-squared test. This test is a goodness-of-fit measure: it's the actual distribution of items in buckets versus the expected (or uniform) distribution of items. The formula is: $$\frac{\sum_{j=0}^{m-1}(b_j)(b_j+1)/2}{(n/2m)(n+2m-1)}$$ where: $$n$$ is the number of keys, $$m$$ is the number of buckets, $$b_j$$ is the number of items in bucket $$j$$

A ratio within one confidence interval (0.95 - 1.05) is indicative that the hash function evaluated has an expected uniform distribution.

Hash functions can have some technical properties that make it more likely that they'll have a uniform distribution when applied. One is the strict avalanche criterion: whenever a single input bit is complemented, each of the output bits changes with a 50% probability. The reason for this property is that selected subsets of the keyspace may have low variability. For the output to be uniformly distributed, a low amount of variability, even one bit, should translate into a high amount of variability (i.e. distribution over the tablespace) in the output. Each bit should change with a probability of 50% because if some bits are reluctant to change, the keys become clustered around those values. If the bits want to change too readily, the mapping is approaching a fixed XOR function of a single bit. Standard tests for this property have been described in the literature. The relevance of the criterion to a multiplicative hash function is assessed here.

Efficiency
In data storage and retrieval applications, the use of a hash function is a trade-off between search time and data storage space. If search time were unbounded, a very compact unordered linear list would be the best medium; if storage space were unbounded, a randomly accessible structure indexable by the key-value would be very large, very sparse, but very fast. A hash function takes a finite amount of time to map a potentially large keyspace to a feasible amount of storage space searchable in a bounded amount of time regardless of the number of keys. In most applications, the hash function should be computable with minimum latency and secondarily in a minimum number of instructions.

Computational complexity varies with the number of instructions required and latency of individual instructions, with the simplest being the bitwise methods (folding), followed by the multiplicative methods, and the most complex (slowest) are the division-based methods.

Because collisions should be infrequent, and cause a marginal delay but are otherwise harmless, it's usually preferable to choose a faster hash function over one that needs more computation but saves a few collisions.

Division-based implementations can be of particular concern because the division is microprogrammed on nearly all chip architectures. Divide (modulo) by a constant can be inverted to become a multiply by the word-size multiplicative-inverse of the constant. This can be done by the programmer, or by the compiler. Divide can also be reduced directly into a series of shift-subtracts and shift-adds, though minimizing the number of such operations required is a daunting problem; the number of assembly instructions resulting may be more than a dozen, and swamp the pipeline. If the architecture has hardware multiply functional units, the multiply-by-inverse is likely a better approach.

We can allow the table size $n$ to not be a power of $2$ and still not have to perform any remainder or division operation, as these computations are sometimes costly. For example, let $n$ be significantly less than $2^{b}$. Consider a pseudorandom number generator function $P(key)$ that is uniform on the interval $[0, 2^{b} − 1]$. A hash function uniform on the interval $[0, n-1]$ is $n P(key)/2^{b}$. We can replace the division by a (possibly faster) right bit shift: $nP(key) >> b$.

If keys are being hashed repeatedly, and the hash function is costly, computing time can be saved by precomputing the hash codes and storing them with the keys. Matching hash codes almost certainly means the keys are identical. This technique is used for the transposition table in game-playing programs, which stores a 64-bit hashed representation of the board position.

Universality
A universal hashing scheme is a randomized algorithm that selects a hashing function $h$ among a family of such functions, in such a way that the probability of a collision of any two distinct keys is $1/m$, where $m$ is the number of distinct hash values desired—independently of the two keys. Universal hashing ensures (in a probabilistic sense) that the hash function application will behave as well as if it were using a random function, for any distribution of the input data. It will, however, have more collisions than perfect hashing and may require more operations than a special-purpose hash function.

Applicability
A hash function that allows only certain table sizes, strings only up to a certain length, or can't accept a seed (i.e. allow double hashing) isn't as useful as one that does.

A hash function is applicable in a variety of situations. Particularly within cryptography, notable applications include:

 * Integrity check: Identical hash values for different files imply equality, providing a reliable means to detect file modifications.
 * Key derivation: Minor input changes result in a random-looking output alteration, known as the diffusion property. Thus, hash functions are valuable for key derivation functions.
 * Message Authentication Codes (MACs): Through the integration of a confidential key with the input data, hash functions can generate MACs ensuring the genuineness of the data, such as in HMACs.
 * Password storage: The password's hash value doesn't expose any password details, emphasizing the importance of securely storing hashed passwords on the server.
 * Signatures: Message hashes are signed rather than the whole message.

Deterministic
A hash procedure must be deterministic—meaning that for a given input value it must always generate the same hash value. In other words, it must be a function of the data to be hashed, in the mathematical sense of the term. This requirement excludes hash functions that depend on external variable parameters, such as pseudo-random number generators or the time of day. It also excludes functions that depend on the memory address of the object being hashed in cases that the address may change during execution (as may happen on systems that use certain methods of garbage collection), although sometimes rehashing of the item is possible.

The determinism is in the context of the reuse of the function. For example, Python adds the feature that hash functions make use of a randomized seed that is generated once when the Python process starts in addition to the input to be hashed. The Python hash (SipHash) is still a valid hash function when used within a single run. But if the values are persisted (for example, written to disk) they can no longer be treated as valid hash values, since in the next run the random value might differ.

Defined range
It is often desirable that the output of a hash function have fixed size (but see below). If, for example, the output is constrained to 32-bit integer values, the hash values can be used to index into an array. Such hashing is commonly used to accelerate data searches. Producing fixed-length output from variable length input can be accomplished by breaking the input data into chunks of specific size. Hash functions used for data searches use some arithmetic expression that iteratively processes chunks of the input (such as the characters in a string) to produce the hash value.

Variable range
In many applications, the range of hash values may be different for each run of the program or may change along the same run (for instance, when a hash table needs to be expanded). In those situations, one needs a hash function which takes two parameters—the input data $z$, and the number $n$ of allowed hash values.

A common solution is to compute a fixed hash function with a very large range (say, $0$ to $2^{32} − 1$), divide the result by $n$, and use the division's remainder. If $n$ is itself a power of $2$, this can be done by bit masking and bit shifting. When this approach is used, the hash function must be chosen so that the result has fairly uniform distribution between $0$ and $n − 1$, for any value of $n$ that may occur in the application. Depending on the function, the remainder may be uniform only for certain values of $n$, e.g. odd or prime numbers.

Variable range with minimal movement (dynamic hash function)
When the hash function is used to store values in a hash table that outlives the run of the program, and the hash table needs to be expanded or shrunk, the hash table is referred to as a dynamic hash table.

A hash function that will relocate the minimum number of records when the table is resized is desirable. What is needed is a hash function $H(z,n)$ – where $z$ is the key being hashed and $n$ is the number of allowed hash values – such that $H(z,n + 1) = H(z,n)$ with probability close to $n/(n + 1)$.

Linear hashing and spiral hashing are examples of dynamic hash functions that execute in constant time but relax the property of uniformity to achieve the minimal movement property. Extendible hashing uses a dynamic hash function that requires space proportional to $n$ to compute the hash function, and it becomes a function of the previous keys that have been inserted. Several algorithms that preserve the uniformity property but require time proportional to $n$ to compute the value of $H(z,n)$ have been invented.

A hash function with minimal movement is especially useful in distributed hash tables.

Data normalization
In some applications, the input data may contain features that are irrelevant for comparison purposes. For example, when looking up a personal name, it may be desirable to ignore the distinction between upper and lower case letters. For such data, one must use a hash function that is compatible with the data equivalence criterion being used: that is, any two inputs that are considered equivalent must yield the same hash value. This can be accomplished by normalizing the input before hashing it, as by upper-casing all letters.

Hashing integer data types
There are several common algorithms for hashing integers. The method giving the best distribution is data-dependent. One of the simplest and most common methods in practice is the modulo division method.

Identity hash function
If the data to be hashed is small enough, one can use the data itself (reinterpreted as an integer) as the hashed value. The cost of computing this identity hash function is effectively zero. This hash function is perfect, as it maps each input to a distinct hash value.

The meaning of "small enough" depends on the size of the type that is used as the hashed value. For example, in Java, the hash code is a 32-bit integer. Thus the 32-bit integer  and 32-bit floating-point   objects can simply use the value directly; whereas the 64-bit integer   and 64-bit floating-point   cannot use this method.

Other types of data can also use this hashing scheme. For example, when mapping character strings between upper and lower case, one can use the binary encoding of each character, interpreted as an integer, to index a table that gives the alternative form of that character ("A" for "a", "8" for "8", etc.). If each character is stored in 8 bits (as in extended ASCII or ISO Latin 1), the table has only 28 = 256 entries; in the case of Unicode characters, the table would have 17×216 = $1,114,112$ entries.

The same technique can be used to map two-letter country codes like "us" or "za" to country names (262 = 676 table entries), 5-digit zip codes like 13083 to city names ($100,000$ entries), etc. Invalid data values (such as the country code "xx" or the zip code 00000) may be left undefined in the table or mapped to some appropriate "null" value.

Trivial hash function
If the keys are uniformly or sufficiently uniformly distributed over the key space, so that the key values are essentially random, they may be considered to be already 'hashed'. In this case, any number of any bits in the key may be extracted and collated as an index into the hash table. For example, a simple hash function might mask off the least significant m bits and use the result as an index into a hash table of size 2m.

Folding
A folding hash code is produced by dividing the input into sections of m bits, where 2m is the table size, and using a parity-preserving bitwise operation such as ADD or XOR to combine the sections, followed by a mask or shifts to trim off any excess bits at the high or low end. For example, for a table size of 15 bits and a 64-bit key value of 0x0123456789ABCDEF, there are five sections consisting of 0x4DEF, 0x1357, 0x159E, 0x091A, and 0x0. Adding, we obtain 0x7FFE, a 15-bit value.

Mid-squares
A mid-squares hash code is produced by squaring the input and extracting an appropriate number of middle digits or bits. For example, if the input is 123,456,789 and the hash table size 10,000, squaring the key produces 15,241,578,750,190,521, so the hash code is taken as the middle 4 digits of the 17-digit number (ignoring the high digit) 8750. The mid-squares method produces a reasonable hash code if there is not a lot of leading or trailing zeros in the key. This is a variant of multiplicative hashing, but not as good because an arbitrary key is not a good multiplier.

Division hashing
A standard technique is to use a modulo function on the key, by selecting a divisor $$M$$ which is a prime number close to the table size, so $$h(K)=K\bmod M$$. The table size is usually a power of 2. This gives a distribution from $$\{0, M-1\}$$. This gives good results over a large number of key sets. A significant drawback of division hashing is that division is microprogrammed on most modern architectures including x86 and can be 10 times slower than multiply. A second drawback is that it won't break up clustered keys. For example, the keys 123000, 456000, 789000, etc. modulo 1000 all map to the same address. This technique works well in practice because many key sets are sufficiently random already, and the probability that a key set will be cyclical by a large prime number is small.

Algebraic coding
Algebraic coding is a variant of the division method of hashing which uses division by a polynomial modulo 2 instead of an integer to map n bits to m bits. In this approach, $$M = 2^m$$ and we postulate an $$m$$th degree polynomial $$\Zeta(x)=x^m+\zeta_{m-1}x^{m-1}+...+\zeta_0$$. A key $$K=(k_{n-1} ... k_1k_0)_2$$ can be regarded as the polynomial $$K(x)=k_{n-1}x^{n-1}+ ... + k_1x+k_0$$. The remainder using polynomial arithmetic modulo 2 is $$K(x)\bmod Z(x) = h_{m-1}x^{m-1}+ ... + h_1x+h_0$$. Then $$h(K)=(h_{m-1}...h_1h_0)_2$$. If $$Z(x)$$ is constructed to have $$t$$ or fewer non-zero coefficients, then keys which share less than $$t$$ bits are guaranteed to not collide.

$$Z$$ a function of $$k$$, $$t$$ and $$n$$, a divisor of $$2^k-1$$, is constructed from the $$GF(2^k)$$ field. Knuth gives an example: for n=15, m=10 and t=7, $$Z(x)=x^{10}+x^8+x^5+x^4+x^2+x+1$$. The derivation is as follows:

Let $$S$$ be the smallest set of integers such that $$\{1,2,...,t\} \subseteq S$$ and $$(2j \bmod n) \in S \quad \forall j\in S$$.

Define $$P(x)=\prod_{j\in S}(x-\alpha^j)$$ where $$\alpha \in^n GF(2^k)$$ and where the coefficients of $$P(x)$$ are computed in this field. Then the degree of $$P(x)=|S|$$. Since $$\alpha^{2j}$$ is a root of $$P(x)$$ whenever $$\alpha^j$$ is a root, it follows that the coefficients $$p^i$$ of $$P(x)$$ satisfy $$p_i^2=p_i$$ so they are all 0 or 1. If $$R(x)=r_{(n-1)}x^{n-1}+...+r_1x+r_0$$ is any nonzero polynomial modulo 2 with at most $$t$$ nonzero coefficients, then $$R(x)$$ is not a multiple of $$P(x)$$ modulo 2. If follows that the corresponding hash function will map keys with fewer than $$t$$ bits in common to unique indices.

The usual outcome is that either $$n$$ will get large, or $$t$$ will get large, or both, for the scheme to be computationally feasible. Therefore, it's more suited to hardware or microcode implementation.

Unique permutation hashing
See also unique permutation hashing, which has a guaranteed best worst-case insertion time.

Multiplicative hashing
Standard multiplicative hashing uses the formula $$h_a(K)=\lfloor(aK\bmod W)/(W/M)\rfloor$$ which produces a hash value in $$\{0,\ldots,M-1\}$$. The value $$a$$ is an appropriately chosen value that should be relatively prime to $$W$$; it should be large and its binary representation a random mix of 1's and 0's.  An important practical special case occurs when $$W=2^w$$ and $$M=2^m$$ are powers of 2 and $$w$$ is the machine word size. In this case this formula becomes $$h_a(K)=\lfloor(aK\bmod 2^w)/2^{w-m}\rfloor$$. This is special because arithmetic modulo $$2^w$$ is done by default in low-level programming languages and integer division by a power of 2 is simply a right-shift, so, in C, for example, this function becomes unsigned hash(unsigned K) { return (a*K) >> (w-m); } and for fixed $$m$$ and $$w$$ this translates into a single integer multiplication and right-shift making it one of the fastest hash functions to compute.

Multiplicative hashing is susceptible to a "common mistake" that leads to poor diffusion—higher-value input bits do not affect lower-value output bits. A transmutation on the input which shifts the span of retained top bits down and XORs or ADDs them to the key before the multiplication step corrects for this. So the resulting function looks like: unsigned hash(unsigned K) { K ^= K >> (w-m); return (a*K) >> (w-m); }

Fibonacci hashing
Fibonacci hashing is a form of multiplicative hashing in which the multiplier is $$2^w/\phi$$, where $$w$$ is the machine word length and $$\phi$$ (phi) is the golden ratio (approximately 5/3). A property of this multiplier is that it uniformly distributes over the table space, blocks of consecutive keys with respect to any block of bits in the key. Consecutive keys within the high bits or low bits of the key (or some other field) are relatively common. The multipliers for various word lengths $$w$$ are: The multiplier should be odd, so the least significant bit of the output is invertible modulo $$2^w$$. The last two values given above are rounded (up and down, respectively) by more than 1/2 of a least-significant bit to achieve this.
 * 16: a = 9E3716 = $40,503$10
 * 32: a = 9E37  79B916 = $2,654,435,769$10
 * 48: a = 9E37  79B9  7F4B16 = $173,961,102,589,771$10
 * 64: a = 9E37  79B9  7F4A  7C1516 = $11,400,714,819,323,200,000$10

Zobrist hashing
Tabulation hashing, more generally known as Zobrist hashing after Albert Zobrist, an American computer scientist, is a method for constructing universal families of hash functions by combining table lookup with XOR operations. This algorithm has proven to be very fast and of high quality for hashing purposes (especially hashing of integer-number keys).

Zobrist hashing was originally introduced as a means of compactly representing chess positions in computer game-playing programs. A unique random number was assigned to represent each type of piece (six each for black and white) on each space of the board. Thus a table of 64×12 such numbers is initialized at the start of the program. The random numbers could be any length, but 64 bits was natural due to the 64 squares on the board. A position was transcribed by cycling through the pieces in a position, indexing the corresponding random numbers (vacant spaces were not included in the calculation), and XORing them together (the starting value could be 0, the identity value for XOR, or a random seed). The resulting value was reduced by modulo, folding or some other operation to produce a hash table index. The original Zobrist hash was stored in the table as the representation of the position.

Later, the method was extended to hashing integers by representing each byte in each of 4 possible positions in the word by a unique 32-bit random number. Thus, a table of 28×4 of such random numbers is constructed. A 32-bit hashed integer is transcribed by successively indexing the table with the value of each byte of the plain text integer and XORing the loaded values together (again, the starting value can be the identity value or a random seed). The natural extension to 64-bit integers is by use of a table of 28×8 64-bit random numbers.

This kind of function has some nice theoretical properties, one of which is called 3-tuple independence meaning every 3-tuple of keys is equally likely to be mapped to any 3-tuple of hash values.

Customised hash function
A hash function can be designed to exploit existing entropy in the keys. If the keys have leading or trailing zeros, or particular fields that are unused, always zero or some other constant, or generally vary little, then masking out only the volatile bits and hashing on those will provide a better and possibly faster hash function. Selected divisors or multipliers in the division and multiplicative schemes may make more uniform hash functions if the keys are cyclic or have other redundancies.

Hashing variable-length data
When the data values are long (or variable-length) character strings—such as personal names, web page addresses, or mail messages—their distribution is usually very uneven, with complicated dependencies. For example, text in any natural language has highly non-uniform distributions of characters, and character pairs, characteristic of the language. For such data, it is prudent to use a hash function that depends on all characters of the string—and depends on each character in a different way.

Middle and ends
Simplistic hash functions may add the first and last $n$ characters of a string along with the length, or form a word-size hash from the middle 4 characters of a string. This saves iterating over the (potentially long) string, but hash functions that do not hash on all characters of a string can readily become linear due to redundancies, clustering or other pathologies in the key set. Such strategies may be effective as a custom hash function if the structure of the keys is such that either the middle, ends or other fields are zero or some other invariant constant that doesn't differentiate the keys; then the invariant parts of the keys can be ignored.

Character folding
The paradigmatic example of folding by characters is to add up the integer values of all the characters in the string. A better idea is to multiply the hash total by a constant, typically a sizable prime number, before adding in the next character, ignoring overflow. Using exclusive 'or' instead of add is also a plausible alternative. The final operation would be a modulo, mask, or other function to reduce the word value to an index the size of the table. The weakness of this procedure is that information may cluster in the upper or lower bits of the bytes, which clustering will remain in the hashed result and cause more collisions than a proper randomizing hash. ASCII byte codes, for example, have an upper bit of 0 and printable strings don't use the first 32 byte codes, so the information (95-byte codes) is clustered in the remaining bits in an unobvious manner.

The classic approach dubbed the PJW hash based on the work of Peter. J. Weinberger at ATT Bell Labs in the 1970s, was originally designed for hashing identifiers into compiler symbol tables as given in the "Dragon Book". This hash function offsets the bytes 4 bits before ADDing them together. When the quantity wraps, the high 4 bits are shifted out and if non-zero, XORed back into the low byte of the cumulative quantity. The result is a word size hash code to which a modulo or other reducing operation can be applied to produce the final hash index.

Today, especially with the advent of 64-bit word sizes, much more efficient variable-length string hashing by word chunks is available.

Word length folding
Modern microprocessors will allow for much faster processing if 8-bit character strings are not hashed by processing one character at a time, but by interpreting the string as an array of 32 bit or 64-bit integers and hashing/accumulating these "wide word" integer values by means of arithmetic operations (e.g. multiplication by constant and bit-shifting). The final word, which may have unoccupied byte positions, is filled with zeros or a specified "randomizing" value before being folded into the hash. The accumulated hash code is reduced by a final modulo or other operation to yield an index into the table.

Radix conversion hashing
Analogous to the way an ASCII or EBCDIC character string representing a decimal number is converted to a numeric quantity for computing, a variable length string can be converted as $(x_{0}a^{k−1}+x_{1}a^{k−2}+...+x_{k−2}a+x_{k−1})$. This is simply a polynomial in a radix $a > 1$ that takes the components $(x_{0},x_{1},...,x_{k−1})$ as the characters of the input string of length $k$. It can be used directly as the hash code, or a hash function applied to it to map the potentially large value to the hash table size. The value of $a$ is usually a prime number at least large enough to hold the number of different characters in the character set of potential keys. Radix conversion hashing of strings minimizes the number of collisions. Available data sizes may restrict the maximum length of string that can be hashed with this method. For example, a 128-bit double long word will hash only a 26 character alphabetic string (ignoring case) with a radix of 29; a printable ASCII string is limited to 9 characters using radix 97 and a 64-bit long word. However, alphabetic keys are usually of modest length, because keys must be stored in the hash table. Numeric character strings are usually not a problem; 64 bits can count up to $10^{19}$, or 19 decimal digits with radix 10.

Rolling hash
In some applications, such as substring search, one can compute a hash function $h$ for every $k$-character substring of a given $n$-character string by advancing a window of width $k$ characters along the string; where $k$ is a fixed integer, and $n$ is greater than $k$. The straightforward solution, which is to extract such a substring at every character position in the text and compute $h$ separately, requires a number of operations proportional to $k·n$. However, with the proper choice of $h$, one can use the technique of rolling hash to compute all those hashes with an effort proportional to $mk + n$ where $m$ is the number of occurrences of the substring.

The most familiar algorithm of this type is Rabin-Karp with best and average case performance $O(n+mk)$ and worst case $O(n·k)$ (in all fairness, the worst case here is gravely pathological: both the text string and substring are composed of a repeated single character, such as $t$="AAAAAAAAAAA", and $s$="AAA"). The hash function used for the algorithm is usually the Rabin fingerprint, designed to avoid collisions in 8-bit character strings, but other suitable hash functions are also used.

Analysis
Worst case result for a hash function can be assessed two ways: theoretical and practical. Theoretical worst case is the probability that all keys map to a single slot. Practical worst case is expected longest probe sequence (hash function + collision resolution method). This analysis considers uniform hashing, that is, any key will map to any particular slot with probability $1/m$, characteristic of universal hash functions.

While Knuth worries about adversarial attack on real time systems, Gonnet has shown that the probability of such a case is "ridiculously small". His representation was that the probability of $k$ of $n$ keys mapping to a single slot is $$\frac{e^{-\alpha}\alpha^k}{k!}$$ where $α$ is the load factor, $n/m$.

History
The term hash offers a natural analogy with its non-technical meaning (to chop up or make a mess out of something), given how hash functions scramble their input data to derive their output. In his research for the precise origin of the term, Donald Knuth notes that, while Hans Peter Luhn of IBM appears to have been the first to use the concept of a hash function in a memo dated January 1953, the term itself would only appear in published literature in the late 1960s, in Herbert Hellerman's Digital Computer System Principles, even though it was already widespread jargon by then.

license: Creative Commons - Attribution Share-Alike - https://creativecommons.org/licenses/by-sa/4.0/

title: Hash function


text:
High jump

The high jump is a track and field event in which competitors must jump unaided over a horizontal bar placed at measured heights without dislodging it. In its modern, most-practiced format, a bar is placed between two standards with a crash mat for landing. Since ancient times, competitors have introduced increasingly effective techniques to arrive at the current form, and the current universally preferred method is the Fosbury Flop, in which athletes run towards the bar and leap head first with their back to the bar.

The discipline is, alongside the pole vault, one of two vertical clearance events in the Olympic athletics program. It is contested at the World Championships in Athletics and the World Athletics Indoor Championships, and is a common occurrence at track and field meets. The high jump was among the first events deemed acceptable for women, having been held at the 1928 Olympic Games.

Javier Sotomayor (Cuba) is the current world record holder with a jump of set in 1993 – the longest-standing record in the history of the men's high jump. Yaroslava Mahuchikh (Ukraine) is the women's world record holder with a jump of set in 2024.

Rules

The rules set for the high jump by World Athletics (previously named the IAAF ) are Technical Rules TR26 and TR27 (previously Rules 181 and 182 ). Jumpers must take off from one foot. A jump is considered a failure if the jumper dislodges the bar or touches the ground or any object behind the bar before clearance.

Competitors may begin jumping at any height announced by the chief judge, or may pass at their own discretion. Most competitions state that three consecutive missed jumps, at any height or combination of heights, will eliminate the jumper from contention. The victory goes to the jumper who clears the greatest height during the final.

Tie breaking
If two or more jumpers tie for any place, the tie-breakers are: 1) the fewest misses at the height at which the tie occurred; and 2) the fewest misses throughout the competition. If the event remains tied for first place (or a limited-advancement position to a subsequent meet), the jumpers have a jump-off, beginning at the next height above their highest success. Jumpers have one attempt at each height. If only one succeeds, he or she wins; if more than one does, these try with the bar raised; if none does, all try with the bar lowered. This process was followed at the 2015 World Championship men's event.

In the example jump-off above, the final cleared height is 1.88m, at which A B C and D each have one failure. D has two failures at lower heights compared to one each for the other three, who proceed to a jump-off at the next height above the final cleared height. C is eliminated in the second round of the jump-off 1.89m, then B wins in the third round.

A 2009 rule-change makes the jump-off optional, so that first place can be shared by agreement among tied athletes. This rule led to shared gold in the 2020 Olympic men's event held in 2021.

History
The first recorded high jump event took place in Scotland in the 19th century. Early jumpers used either an elaborate straight-on approach or a scissors technique. In later years, the bar was approached diagonally, and the jumper threw first the inside leg and then the other over the bar in a scissoring motion.

Around the turn of the 20th century, techniques began to change, beginning with the Irish-American Michael Sweeney's Eastern cut-off as a variation of the scissors technique. By taking off as in the scissors method, extending his spine and flattening out over the bar, Sweeney raised the world record to in 1895. Even in 1948, John Winter of Australia won the gold medal of the 1948 London Olympics with this style. Besides, one of the most successful female high jumpers, Iolanda Balaș of Romania, used this style to dominate women's high jump for about 10 years until her retirement in 1967.

Another American, George Horine, developed an even more efficient technique, the Western roll. In this style, the bar again is approached on a diagonal, but the inner leg is used for the take-off, while the outer leg is thrust up to lead the body sideways over the bar. Horine increased the world standard to in 1912. His technique was predominant through the 1936 Berlin Olympics, in which the event was won by Cornelius Johnson at.

American and Soviet jumpers were the most successful for the next four decades, and they pioneered the straddle technique. Straddle jumpers took off as in the Western roll but rotated their torso, belly-down, around the bar, obtaining the most efficient and highest clearance up to that time. Straddle jumper Charles Dumas was the first to clear 7 ft (2.13m), in 1956. American John Thomas pushed the world mark to in 1960. Valeriy Brumel of the Soviet Union took over the event for the next four years, radically speeding up his approach run. He took the record up to and won the gold medal of the 1964 Tokyo Olympics, before a motorcycle accident ended his career in 1965. American coaches, including two-time NCAA champion Frank Costello of the University of Maryland, flocked to Russia to learn from Brumel and his coaches like Vladimir Dyachkov. However, it would be a solitary innovator at Oregon State University, Dick Fosbury, who would bring the high jump into the next century.

Taking advantage of the raised, softer, artificially-cushioned landing areas that were in use by then, Fosbury added a new twist to the outmoded Eastern cut-off. He directed himself over the bar head and shoulders first, going over on his back and landing in a fashion that would likely have resulted in serious injury in the old ground-level landing pits, which were usually filled with sawdust or sand mixtures. Around the same time, Debbie Brill independently came up with the same technique, which she called the 'Brill Bend'.

Since Fosbury used his new style, called the Fosbury flop, to win the gold medal of the 1968 Mexico Olympics, its use spread quickly, and soon "floppers" were dominating international high jump competitions. The first flopper setting a world record was the American Dwight Stones, who cleared in 1973. In the female side, the 16-year-old flopper Ulrike Meyfarth from West Germany won the gold medal of the 1972 Munich Olympics at, which tied the women's world record at that time (held by the Austrian straddler Ilona Gusenbauer a year before). However, it was not until 1978 when a flopper, Sara Simeoni of Italy, broke the women's world record.

Successful high jumpers following Fosbury's lead also included the rival of Dwight Stones, 5 ft-tall Franklin Jacobs of Paterson, New Jersey, who cleared, 0.59 m over his head (a feat equalled 27 years later by Stefan Holm of Sweden); Chinese record-setters Ni-chi Chin and Zhu Jianhua; Germans Gerd Wessig and Dietmar Mögenburg; Swedish Olympic medalist and former world record holder Patrik Sjöberg; female jumpers Ulrike Meyfarth of West Germany and Sara Simeoni of Italy.

In spite of this, the straddle technique did not disappear at once. In 1977, the 18-year-old Soviet straddler Vladimir Yashchenko set a new world record. In 1978, he raised the record to, and indoor, just before a knee injury effectively ended his career when he was only 20 years old. In the female side, the straddler Rosemarie Ackermann of East Germany, who was the first female jumper ever to clear, raised the world record from to  during 1974 to 1977. In fact, from 2 June 1977 to 3 August 1978, almost 10 years after Fosbury's success, the men's and women's world records were still held by straddle jumpers Yashchenko and Ackermann respectively. However, they were the last world record holders using the straddle technique. Ackermann also won the gold medal of the 1976 Montreal Olympics, which was the last time for a straddle jumper (male or female) to win an Olympic medal.

In 1980, the Polish flopper, 1976 Olympic gold medalist Jacek Wszoła, broke Yashchenko's world record at. Two years before, the female Italian flopper Sara Simeoni, the long-term rival of Ackermann, broke Ackermann's world record at and became the first female flopper to break the women's world record. She also won the gold medal of the 1980 Moscow Olympics, where Ackermann placed fourth. Since then, the flop style has been completely dominant. All other techniques were almost extinct in serious high jump competitions after late 1980s.

Technical aspects
Technique and form have evolved greatly over the history of high jump. The Fosbury Flop is currently considered the most efficient way for competitors to propel themselves over the bar.

Approach

For a Fosbury Flop, depending on the athlete's jump foot, they start on the right or left of the high jump mat, placing their jump foot farthest away from the mat. They take an eight- to ten-step approach, with the first three to five steps being in a straight line and the last five being on a curve. Athletes generally mark their approach in order to find as much consistency as possible.

The approach run can be more important than the takeoff. If a high jumper runs with bad timing or without enough aggression, clearing the bar becomes more of a challenge. The approach requires a certain shape or curve, the right amount of speed, and the correct number of strides. The approach angle is also critical for optimal height.

The straight run builds the momentum and sets the tone for a jump. The athlete starts by pushing off their takeoff foot with slow, powerful steps, then begins to accelerate. They should be running upright by the end of the straight portion.

The athlete's takeoff foot will be landing on the first step of the curve, and they will continue to accelerate, focusing their body towards the opposite back corner of the high jump mat. While staying erect and leaning away from the mat, the athlete takes their final two steps flat-footed, rolling from the heel to the toe.

Most great straddle jumpers run at angles of about 30 to 40 degrees. The length of the run is determined by the speed of the approach. A slower run requires about eight strides, but a faster high jumper might need about 13 strides. Greater speed allows a greater part of the body's forward momentum to be converted upward.

The J approach favored by Fosbury floppers allows for speed, the ability to turn in the air (centripetal force), and a good takeoff position, which helps turn horizontal momentum into vertical momentum. The approach should be a hard, controlled stride so that the athlete does not fall from running at an angle. Athletes should lean into the curve from their ankles, not their hips. This allows their hips to rotate during takeoff, which in turn allows their center of gravity to pass under the bar.

Takeoff
The takeoff can be double-arm or single-arm. In both cases, the plant foot should be the foot farthest from the bar, angled towards the opposite back corner of the mat, as they drive up the knee on their non-takeoff leg. This is accompanied by a one- or two-arm swing while driving the knee.

Unlike the straddle technique, where the takeoff foot is "planted" in the same spot regardless of the height of the bar, flop-style jumpers must adjust their approach run as the bar is raised so that their takeoff spot is slightly farther out from the bar. Jumpers attempting to reach record heights commonly fail when most of their energy is directed into the vertical effort and they knock the bar off the standards with the backs of their legs as they stall.

An effective approach shape can be derived from physics. For example, the rate of backward spin required as the jumper crosses the bar in order to facilitate shoulder clearance on the way up and foot clearance on the way down can be determined by computer simulation. This rotation rate can be back-calculated to determine the required angle of lean away from the bar at the moment of planting, based on how long the jumper is on the takeoff foot. This information, together with the jumper's speed, can be used to calculate the radius of the curved part of the approach. One can also work in the opposite direction by assuming a certain approach radius and determining the resulting backward rotation. Drills can be practiced to solidify the approach. One drill is to run in a straight line and then run two to three circles spiraling into one another. Another is to run or skip a circle of any size two to three times in a row. It is important to leap upwards without first leaning into the bar, allowing the momentum of the J approach to carry the body across the bar.

Flight
The knee on the athlete's non-takeoff leg naturally turns their body, placing them in the air with their back to the bar. The athlete then drives their shoulders towards the back of their feet, arching their body over the bar. They can look over their shoulder to judge when to kick both feet over their head, causing their body to clear the bar and land on the mat.

Annulled marks
The following athletes have had their personal best annulled due to doping offences:

Annulled marks
The following athletes have had their personal best annulled due to doping offences:

Women

 * undefined Known as the World Indoor Games.

Athletes with most medals
Athletes who have won multiple titles at the two most important competitions, the Olympic Games and the World Championships:
 * 4 wins: Mariya Lasitskene (RUS) - Olympic Champion in 2020, World Champion in 2015, 2017 & 2019
 * 4 wins: Mutaz Essa Barshim (QAT) - Olympic Champion in 2020, World Champion in 2017, 2019 & 2022
 * 3 wins: Javier Sotomayor (CUB) - Olympic Champion in 1992, World Champion in 1993 & 1997
 * 3 wins: Stefka Kostadinova (BUL) - Olympic Champion in 1996, World Champion in 1987 & 1995
 * 2 wins: Gennadiy Avdeyenko (URS) - Olympic Champion in 1988, World Champion in 1983
 * 2 wins: Charles Austin (USA) - Olympic Champion in 1996, World Champion in 1991
 * 2 wins: Iolanda Balaș (ROU) - Olympic Champion in 1960 & 1964
 * 2 wins: Ulrike Meyfarth (FRG) - Olympic Champion in 1972 & 1984
 * 2 wins: Heike Henkel (GER) - Olympic Champion in 1992, World Champion in 1991
 * 2 wins: Hestrie Cloete (RSA) - World Champion in 2001 & 2003
 * 2 wins: Blanka Vlašić (CRO) - World Champion in 2007 & 2009
 * 2 wins: Anna Chicherova (RUS) - Olympic Champion in 2012, World Champion in 2011
 * 2 wins: Gianmarco Tamberi (ITA) - Olympic Champion in 2020, World Champion in 2023

Kostadinova and Sotomayor are the only high jumpers to have been Olympic Champion, World Champion and broken the world record.

title: High jump