私は間の最速のタイプを理解float
しては、double
通常、倍精度に基づいてネイティブのALUの実装に依存します。逆精度に基づいて計算を行う場合、ALUは常に対応する精度変換を実行する必要があります。
それで、なぜ標準float
がload_factor
?を表すために選ばれたのですか?ハッシュテーブルのコンテナを考えてメモリを節約するためだと思いますが、もっと強い理由があるかどうか知りたいです。
これは、元の提案のリビジョン3で発生しました。
float
代わりに使用するように負荷係数操作を変更しましたdouble
理論的根拠は後で与えられます(「E.ハッシュサイズ変更の制御」の下で):
浮動小数点パラメーターはタイプ
float
またはタイプである必要がありdouble
ますか?違いはほとんどありません。一方でdouble
は、通常、反対の強い理由がない場合に使用される「自然な」浮動小数点型です。一方、float
ハッシュテーブルの実装によってスペースを節約できる場合があり、高精度が関係するコンテキストでは値が使用されないという事実をユーザーに警告する場合があります。を選択しましたfloat
。
だから基本的にあなたが言ったこと。
パフォーマンスに関しては、これと、それが物事の壮大なスキームで実際に重要ではないことについての言及があります(浮動小数点対整数の使用を擁護する文脈ではありますが):
実行時の浮動小数点パラメーターのコストは、(すべての挿入ではなく)再ハッシュごとに1回の浮動小数点乗算です。インクリメンタルハッシュを使用しても、これは再ハッシュのコストによって矮小化されることはほぼ確実です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加