Go to the first, previous, next, last section, table of contents.

### `setmod_ff`

`setmod_ff([p|defpoly2])`
`setmod_ff([defpolyp,p])`
`setmod_ff([p,n])`
  :: 有限体の設定, 設定されている有限体の法, 定義多項式の表示

return
  数または多項式
p
  素数
defpoly2
  GF(2) 上既約な 1 変数多項式
defpolyp
  GF(p) 上既約な 1 変数多項式
n
  拡大次数

- 引数が正整数 p の時, GF(p) を基礎体として設定する.
- 引数が多項式 defpoly2 の時, GF(2^deg(defpoly2 mod 2)) = GF(2)[t]/(defpoly2(t) mod 2) を基礎体として設定する.
- 引数が defpolyp と p の時, GF(p^deg(defpolyp)) を基礎体として設定する.
- 引数が p と n の時, GF(p^n) を基礎体として設定する. p^n は 2^29 未満で なければならない. また, p が 2^14 以上のとき, n は 1 でなければならない.
- 無引数の時, 設定されている基礎体が GF(p)の場合 p, GF(2^n) の場合定義多項式を返す. 基礎体が `setmod_ff(defpoly,p)` で定義された GF(p^n) の場合, [defpoly,p] を返す. 基礎体が `setmod_ff(p,n)` で定義された GF(p^n) の場合, [p,defpoly,prim_elem] を返す. ここで, defpoly は, n 次拡大の定義多項式, prim_elem は, GF(p^n)の 乗法群の生成元を意味する.
- GF(2^n) の定義多項式は, GF(2) 上 n 次既約ならなんでも良いが, 効率に 影響するため, `defpoly_mod2()` で生成するのがよい.

    [174] defpoly_mod2(100);
    x^100+x^15+1
    [175] setmod_ff(@@);
    x^100+x^15+1
    [176] setmod_ff();
    x^100+x^15+1
    [177] setmod_ff(x^4+x+1,547);
    [1*x^4+1*x+1,547]
    [178] setmod_ff(2,5);
    [2,x^5+x^2+1,x]

`参照`
  section `defpoly_mod2`

Go to the first, previous, next, last section, table of contents.