Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

gftuple

ガロア体の元の形式の簡略化または変換

構文

tp = gftuple(a,m)
tp = gftuple(a,prim_poly)
tp = gftuple(a,m,p)
tp = gftuple(a,prim_poly,p)
tp = gftuple(a,prim_poly,p,prim_ck)
[tp,expform] = gftuple(...)

説明

メモ

この関数は、p が素数のとき、GF(pm) の計算を行います。GF(2m) において等価な計算を行うには、ガロア配列に対して .^ 演算子および関数 log を適用します。詳細は、例:べき乗例:要素単位の対数を参照してください。

すべての構文に対して

gftuple は、ガロア体要素の多項式または指数形式を簡略化したり、形式を変換したりする場合に役立ちます。gftuple が使用する形式の説明は、ガロア体の元の表現を参照してください。

この説明では、GF(pm) の要素の形式は、すべての原始元の指数が以下の場合に "最も簡単である" と考えられます。

  • 多項式形式に対して 0 から m-1

  • 指数形式に対して -Inf、または 0 と pm-2 の間

すべての構文に対して、a は各行がガロア体の元を表す行列です。a の形式によって MATLAB が解釈する方法が決まります。

  • a が整数列の場合は、MATLAB は各行を元の "指数" 形式として解釈します。負の整数は、それらはすべて体のゼロ元を表すため、-Inf と等価です。

  • a が 2 列以上の場合、MATLAB は各行を元の "多項式" 形式として解釈します (a の各エントリは 0 ~ p-1 の整数でなければなりません)。

上記の指数形式あるいは多項式形式は、すべて "2 番目の" 入力引数によって指定された原始元に対応します。2 番目の引数は、以下に説明します。

特定の構文に対して

tp = gftuple(a,m) は、a が表現する元の最も簡単な多項式形式で返します。この多項式では、tp の k 番目の行が a の k 番目の行に対応します。形式は、m が正の整数である GF(2^m) の既定の原始多項式の根に対応します。

tp = gftuple(a,prim_poly) は、prim_poly多項式の文字ベクトルまたは GF(2^m) の次数 m の原始多項式の係数を昇べきの順に表示する行ベクトルであること以外は最初の構文と同じです。

tp = gftuple(a,m,p) は、2 が素数 p で置換されること以外は tp = gftuple(a,m) と同じです。

tp = gftuple(a,prim_poly,p) は、2 が素数 p で置換されること以外は tp = gftuple(a,prim_poly) と同じです。

tp = gftuple(a,prim_poly,p,prim_ck) は、gftupleprim_poly が実際に原始である多項式を表現しているかどうかを確認すること以外は tp = gftuple(a,prim_poly,p) と同じです。原始でない場合は、gftuple によってエラーが生成され tp は返されません。入力引数 prim_ck は存在することのみが重要であり、引数自体は任意の数値あるいは文字ベクトルを取れます。

[tp,expform] = gftuple(...) は、追加の行列 expform を返します。expform の k 番目の行は、a の k 番目の行が表す要素の最も簡単な指数形式です。その他のすべての機能は、入力引数に応じて、この「詳細」節の前の部分に記述されています。

その他の例として、以下の gftuple コマンドが、既定の原始多項式の根に対応して配置された、GF(p^m) の元の一覧を生成することが挙げられます。本ツールボックスの関数の中には、この一覧を入力引数として使うものがあります。

p = 5; % Or any prime number
m = 4; % Or any positive integer
field = gftuple([-1:p^m-2]',m,p);

最後に、以下の 2 つのコマンドは、入力行列の "形状" の影響を説明します。最初のコマンドにおいて、列ベクトルは、指数形式で表現される一連の要素として取り扱われます。2 番目のコマンドでは、行ベクトルは多項式形式で表現される単一の要素として取り扱われます。

tp1 = gftuple([0; 1],3,3)
tp2 = gftuple([0, 0, 0, 1],3,3)

出力は以下のようになります。

tp1 =

     1     0     0
     0     1     0


tp2 =


     2     1     0

出力は、GF(33) に対する既定の原始多項式に従って、以下の関係が真であることを反映します。

α0=1+0α+0α2α1=0+1α+0α20+0α+0α2+α3=2+α+0α2

アルゴリズム

gftuple は、指数形式を決定するために、再帰呼び出しを使用します。

R2006a より前に導入