tail head cat sleep
QR code linking to this page

manページ  — GPERF

名称

gperf - キーの集合から完全なハッシュ関数を生成する

内容

書式

gperf [OPTION]... [INPUT-FILE]

解説

GNU `gperf' 、完全なハッシュ関数を生成します。

長いオプションに引数が必須であると示している場合、 等価の短いオプションも引数は必須です。

入力ファイルの解釈

-e, --delimiters=DELIMITER-LIST
  デリミタを含む文字列を指定します。 デリミタは、キーワードと属性とを切り分けるために使用されます。 デフォルトは ",\n" です。
-t, --struct-type
  構造体の型宣言を、生成コード中に含めます。 %% より前のすべてのテキストは、型宣言とみなされます。 キーワードと追加のフィールドを、ひとまとめに 1 行にして、 この後に続けます。

出力コード用言語

-L, --language=LANGUAGE-NAME
  指定した言語でコードを生成します。 現在使用可能な言語は、C++, ANSI-C, C, KR-C です。 デフォルトは C です。

出力コードの詳細

-K, --slot-name=NAME
  キーワード構造体中のキーワード要素の名前を選択します。
-F, --initializer-suffix=INITIALIZERS
  キーワード構造体中の追加要素を、これで初期します。
-H, --hash-fn-name=NAME
  生成されるハッシュ関数の名前を指定します。 デフォルトは `hash' です。
-N, --lookup-fn-name=NAME
  生成される検索関数の名前を指定します。 デフォルトは `in_word_set' です。
-Z, --class-name=NAME
  生成される C++ クラスの名前を指定します。 デフォルト名は `Perfect_Hash' です。
-7, --seven-bit
  7 ビット文字を仮定します。
-c, --compare-strncmp
  strcmp の代りに strncmp を使用する、比較コードを生成します。
-C, --readonly-tables
  生成される検索表を定数、すなわち読み取り専用にします。
-E, --enum define の代りに enum 型ローカルを使用して、 検索関数用の定数値を定義します。
-I, --includes
  必要なシステムインクルードファイル <string.h> を、 コードの先頭でインクルードします。
-G, --global
  キーワードの静的な表を、 検索関数中に隠す (これがデフォルト動作です) の代りに、 静的な大域変数として生成します。
-W, --word-array-name=NAME
  単語一覧配列の名前を指定します。 デフォルト名は `wordlist' です。
-S, --switch=COUNT
  生成される C コードに、配列検索表の代りに、switch 文方式を使用させます。 キーファイルによっては、時間と空間の削減になります。 COUNT 引数は、生成される switch 文の数を指定します。 値 1 ではすべての要素を含む switch を 1 個生成し、 値 2 では表の半分の要素を含む switch を 2 個生成し、等となります。 COUNT が非常に大きい場合、例えば 1000000 の場合、 生成される C コードは二分検索を行います。
-T, --omit-struct-type
  型宣言が出力ファイルへ転送されることを防ぎます。 型が他のどこかで定義されている場合に、本オプションを使用します。

gperf が使用するアルゴリズム

-k, --key-positions=KEYS
  ハッシュ関数が使用するキーの場所を選択します。 選択が許される範囲は 1-126 の範囲で、両端を含みます。 位置はコンマで区切り、範囲を指定可能であり、キー位置の順序は任意です。 また、メタ文字 '*' は、生成されるハッシュ関数にすべての キー位置を考慮させ、$ は ``最後の文字'' を意味します。 例は $,1,2,4,6-10 です。
-l, --compare-strlen
  文字列比較の前に、キーの長さを比較します。 これにより、検索中の文字列比較回数を削減します。
-D, --duplicates
  重複する値にハッシュされるキーワードを扱います。 非常に冗長なキーワード集合を扱う場合に有用です。
-f, --fast=ITERATIONS
  gen-perf.hash 関数を ``高速'' に生成します。 gperf の実行時間を削減しますが、 生成される表の大きさの最小化を犠牲にします。 数値引数は、衝突解決時の繰り返し数を表現します。 `0' は、``キーワード数だけ繰り返す'' ことを意味します。
-i, --initial-asso=N
  関連付けられた値の配列に初期値を与えます。 デフォルト値は 0 です。 この値を大きくすると、最終的な表を大きくします。
-j, --jump=JUMP-VALUE
  ``ジャンプ値''、 すなわち文字の関連付けられた値を、衝突時にどれだけ進めるかを指定します。 奇数であることが必要であり、デフォルトは 5 です。
-n, --no-strlen
  ハッシュ関数の計算にキーワード長を含めません。
-o, --occurrence-sort
  キー集合中での出現頻度で、入力キーを並び換えます。 検索時間を劇的に削減するはずです。
-r, --random
  関連付けられた値の表の初期化にランダム性を利用します。
-s, --size-multiple=N
  生成されるハッシュ表の大きさを変えます。 数値引数 N は、関連付けられた値の範囲が、 入力キーの数と比較して ``何倍大きいまたは小さい'' べきことを示します。 例えば、数値 3 は、 ``関連付けられた値の最大値は、入力キー数の約 3 倍の大きさを許す'' ことを意味します。 逆に、値 -3 は、 ``関連付けられた値の最大値を、入力キー数の約 1/3 に小さくする'' ことを意味します。 表が大きくなると、検索失敗時の時間を削減しますが、 表のための余計な空間が犠牲となります。 デフォルト値は 1 です。

情報としての出力

-h, --help このメッセージを表示します。
-v, --version
  gperf のバージョン番号を表示します。
-d, --debug
  デバッグオプションを有効にします (冗長な出力を標準エラーへ生成します)。

バグレポート

バグは <bug-gnu-utils@gnu.org> へ報告してください。

関連項目

gperf の完全な文書は Texinfo マニュアルで管理されています。 info および gperf のプログラムがあなたのサイトで適切にインストールされていれば、コマンド
info gperf

September 2000 GPERF (1) GNU gperf 2.7.2

tail head cat sleep
QR code linking to this page


このマニュアルページサービスについてのご意見は Ben Bullock にお知らせください。 Privacy policy.

If you have any trouble sounding condescending, find a Unix user to show you how it's done.
— Scott Adams