msgid ""
msgstr ""
"Project-Id-Version: English (Boost Unordered Translation (zh_Hans))\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-07 04:37+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English <https://insights.cppalliance.org/weblate/projects/"
"boost-unordered-documentation-zh_Hans/doc-modules-root-pages-hash-quality-"
"adoc/en/>\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2026.5\n"

#: :1
#, read-only, safe-html, strict-same
msgid "﻿[#hash_quality] = Hash Quality"
msgstr "﻿[#hash_quality] = Hash Quality"

#: :4
#, read-only, safe-html, strict-same
msgid ":idprefix: hash_quality_"
msgstr ":idprefix: hash_quality_"

#: :6
#, read-only, safe-html, strict-same
msgid ""
"In order to work properly, hash tables require that the supplied hash "
"function be of __good quality__, roughly meaning that it uses its "
"`std::size_t` output space as uniformly as possible, much like a random "
"number generator would do —except, of course, that the value of a hash "
"function is not random but strictly determined by its input argument."
msgstr ""
"In order to work properly, hash tables require that the supplied hash "
"function be of __good quality__, roughly meaning that it uses its "
"`std::size_t` output space as uniformly as possible, much like a random "
"number generator would do —except, of course, that the value of a hash "
"function is not random but strictly determined by its input argument."

#: :12
#, read-only, safe-html, strict-same
msgid ""
"Closed-addressing containers in Boost.Unordered are fairly robust against "
"hash functions with less-than-ideal quality, but open-addressing and "
"concurrent containers are much more sensitive to this factor, and their "
"performance can degrade dramatically if the hash function is not "
"appropriate. In general, if you're using functions provided by or generated "
"with link:../../../../container_hash/index.html[Boost.Hash^], the quality "
"will be adequate, but you have to be careful when using alternative hash "
"algorithms."
msgstr ""
"Closed-addressing containers in Boost.Unordered are fairly robust against "
"hash functions with less-than-ideal quality, but open-addressing and "
"concurrent containers are much more sensitive to this factor, and their "
"performance can degrade dramatically if the hash function is not "
"appropriate. In general, if you're using functions provided by or generated "
"with link:../../../../container_hash/index.html[Boost.Hash^], the quality "
"will be adequate, but you have to be careful when using alternative hash "
"algorithms."

#: :20
#, read-only, safe-html, strict-same
msgid ""
"The rest of this section applies only to open-addressing and concurrent "
"containers."
msgstr ""
"The rest of this section applies only to open-addressing and concurrent "
"containers."

#: :22
#, read-only, safe-html, strict-same
msgid "Hash Post-mixing and the Avalanching Property"
msgstr "Hash Post-mixing and the Avalanching Property"

#: :24
#, read-only, safe-html, strict-same
msgid ""
"Even if your supplied hash function does not conform to the uniform behavior "
"required by open addressing, chances are that the performance of "
"Boost.Unordered containers will be acceptable, because the library executes "
"an internal __post-mixing__ step that improves the statistical properties of "
"the calculated hash values. This comes with an extra computational cost; if "
"you'd like to opt out of post-mixing, annotate your hash function as follows:"
msgstr ""
"Even if your supplied hash function does not conform to the uniform behavior "
"required by open addressing, chances are that the performance of "
"Boost.Unordered containers will be acceptable, because the library executes "
"an internal __post-mixing__ step that improves the statistical properties of "
"the calculated hash values. This comes with an extra computational cost; if "
"you'd like to opt out of post-mixing, annotate your hash function as follows:"

#: :45
#, read-only, safe-html, strict-same
msgid ""
"By setting the `link:../../../../container_hash/doc/html/"
"hash.html#ref_hash_is_avalanchinghash[hash_is_avalanching]` trait, we inform "
"Boost.Unordered that `my_string_hash_function` is of sufficient quality to "
"be used directly without any post-mixing safety net. This comes at the risk "
"of degraded performance in the cases where the hash function is not as well-"
"behaved as we've declared."
msgstr ""
"By setting the `link:../../../../container_hash/doc/html/"
"hash.html#ref_hash_is_avalanchinghash[hash_is_avalanching]` trait, we inform "
"Boost.Unordered that `my_string_hash_function` is of sufficient quality to "
"be used directly without any post-mixing safety net. This comes at the risk "
"of degraded performance in the cases where the hash function is not as well-"
"behaved as we've declared."

#: :52
#, read-only, safe-html, strict-same
msgid "Container Statistics"
msgstr "Container Statistics"

#: :54
#, read-only, safe-html, strict-same
msgid ""
"If we globally define the macro `BOOST_UNORDERED_ENABLE_STATS`, open-"
"addressing and concurrent containers will calculate some internal statistics "
"directly correlated to the quality of the hash function:"
msgstr ""
"If we globally define the macro `BOOST_UNORDERED_ENABLE_STATS`, open-"
"addressing and concurrent containers will calculate some internal statistics "
"directly correlated to the quality of the hash function:"

#: :75
#, read-only, safe-html, strict-same
msgid "The `stats` object provides the following information:"
msgstr "The `stats` object provides the following information:"

#: :108
#, read-only, safe-html, strict-same
msgid ""
"Statistics for three internal operations are maintained: insertions (without "
"considering the previous lookup to determine that the key is not present yet)"
", successful lookups, and unsuccessful lookups (including those issued "
"internally when inserting elements). _Probe length_ is  the number of "
"xref:structures.adoc#structures_open_addressing_containers[bucket groups] "
"accessed per operation. If the hash function behaves properly:"
msgstr ""
"Statistics for three internal operations are maintained: insertions (without "
"considering the previous lookup to determine that the key is not present yet)"
", successful lookups, and unsuccessful lookups (including those issued "
"internally when inserting elements). _Probe length_ is  the number of "
"xref:structures.adoc#structures_open_addressing_containers[bucket groups] "
"accessed per operation. If the hash function behaves properly:"

#: :115
#, read-only, safe-html, strict-same
msgid "Average probe lengths should be close to 1.0."
msgstr "Average probe lengths should be close to 1.0."

#: :116
#, read-only, safe-html, strict-same
msgid ""
"The average number of comparisons per successful lookup should be close to "
"1.0 (that is,"
msgstr ""
"The average number of comparisons per successful lookup should be close to "
"1.0 (that is,"

#: :117
#, read-only, safe-html, strict-same
msgid "just the element found is checked)."
msgstr "just the element found is checked)."

#: :118
#, read-only, safe-html, strict-same
msgid ""
"The average number of comparisons per unsuccessful lookup should be close to "
"0.0."
msgstr ""
"The average number of comparisons per unsuccessful lookup should be close to "
"0.0."

#: :120
#, read-only, safe-html, strict-same
msgid ""
"An link:../../../benchmark/string_stats.cpp[example^] is provided that "
"displays container statistics for `boost::hash<std::string>`, an "
"implementation of the https://en.wikipedia.org/wiki/"
"Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-1a_hash[FNV-1a hash^] and "
"two ill-behaved custom hash functions that have been incorrectly marked as "
"avalanching:"
msgstr ""
"An link:../../../benchmark/string_stats.cpp[example^] is provided that "
"displays container statistics for `boost::hash<std::string>`, an "
"implementation of the https://en.wikipedia.org/wiki/"
"Fowler%E2%80%93Noll%E2%80%93Vo_hash_function#FNV-1a_hash[FNV-1a hash^] and "
"two ill-behaved custom hash functions that have been incorrectly marked as "
"avalanching:"
