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

### `lex_hensel_gsl`, `tolex_gsl`, `tolex_gsl_d`

`lex_hensel_gsl(plist,vlist1,order,vlist2,homo)`
  :: GSL 形式のイデアル基底の計算
`tolex_gsl(plist,vlist1,order,vlist2)`
`tolex_gsl_d(plist,vlist1,order,vlist2,procs)`
  :: グレブナ基底を入力とする, GSL 形式のイデアル基底の計算

return
  リスト
plist vlist1 vlist2 procs
  リスト
order
  数, リストまたは行列
homo
  フラグ

- `lex_hensel_gsl()` は `lex_hensel()` の, `tolex_gsl()` は `tolex()` の変種で, 結果のみが異なる. `tolex_gsl_d()` は, 基底計算を, `procs` で指定される子プロセスに 分散計算させる.
- 入力が 0 次元システムで, その辞書式順序グレブナ基底が `[f0,x1-f1,...,xn-fn]` (`f0`,...,`fn` は `x0` の 1 変数多項式) なる形 (これを SL 形式と呼ぶ) を持つ場合, `[[x1,g1,d1],...,[xn,gn,dn],[x0,f0,f0']]` なるリスト (これを GSL 形式と呼ぶ) を返す. ここで, `gi` は, `di*f0'*fi-gi` が `f0` で割り切れるような `x0` の1 変数多項式で, 解は `f0(x0)=0` なる `x0` に対し, `[x1=g1/(d1*f0'),...,xn=gn/(dn*f0')]` となる. 辞書式順序グレブナ基底が上のような形でない場合, `tolex()` に よる通常のグレブナ基底を返す.
- GSL 形式により表される基底はグレブナ基底ではないが, 一般に係数が SL 形式 のグレブナ基底より非常に小さいため計算も速く, 解も求めやすい. `tolex_gsl_d()` で表示される時間は, この函数が実行されているプロセスに おいて行われた計算に対応していて, 子プロセスにおける時間は含まれない.

    [103] K=katsura(5)$
    [104] V=[u5,u4,u3,u2,u1,u0]$
    [105] G0=gr(K,V,0)$
    [106] GSL=tolex_gsl(G0,V,0,V)$
    [107] GSL[0];
    [u1,8635837421130477667200000000*u0^31-...]
    [108] GSL[1];
    [u2,10352277157007342793600000000*u0^31-...]
    [109] GSL[5];
    [u0,11771021876193064124640000000*u0^32-...,
    376672700038178051988480000000*u0^31-...]

`参照`
  section `lex_hensel`, `lex_tl`, `tolex`, `tolex_d`, `tolex_tl`, section 分散計算

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