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

### `udiv`, `urem`, `urembymul`, `urembymul_precomp`, `ugcd`

`udiv(p1,p2)`
`urem(p1,p2)`
`urembymul(p1,p2)`
`urembymul_precomp(p1,p2,inv)`
`ugcd(p1,p2)`
  :: 一変数多項式の除算, GCD

return
  一変数多項式
p1 p2 inv
  一変数多項式

- 一変数多項式 p1, p2 に対し, `udiv` は商, `urem`, `urembymul` は剰余, `ugcd` は GCD を返す. これらは, 密な一変数多項式に対する高速化を図ったものである. `urembymul` は, p2 による剰余計算を, p2 の 冪級数としての逆元計算および, 乗算 2 回に置き換えたもので, 次数が大きい場合に有効である.
- `urembymul_precomp` は, 固定された多項式による剰余 計算を多数行う場合などに効果を発揮する. 第 3 引数は, あらかじめ `ureverse_inv_as_power_series()` に より計算しておく.

    [177] setmod_ff(2^160-47);
    1461501637330902918203684832716283019655932542929
    [178] A=randpoly_ff(200,x)$
    [179] B=randpoly_ff(101,x)$
    [180] cputime(1)$
    0sec(1.597e-05sec)
    [181] srem(A,B)$
    0.15sec + gc : 0.15sec(0.3035sec)
    [182] urem(A,B)$
    0.11sec + gc : 0.12sec(0.2347sec)
    [183] urembymul(A,B)$
    0.08sec + gc : 0.09sec(0.1651sec)
    [184] R=ureverse_inv_as_power_series(B,101)$
    0.04sec + gc : 0.03sec(0.063sec)
    [185] urembymul_precomp(A,B,R)$
    0.03sec(0.02501sec)

`参照`
  section `uinv_as_power_series`, `ureverse_inv_as_power_series`.

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