Annotation of OpenXM/src/asir-contrib/packages/doc/noro_grcrt/noro_grcrt-ja.texi, Revision 1.1
1.1 ! noro 1: %comment $OpenXM$
! 2: %comment --- おまじない ---
! 3: \input texinfo-ja
! 4: @iftex
! 5: @catcode`@#=6
! 6: @def@fref#1{@xrefX[#1,,@code{#1},,,]}
! 7: @def@b#1{{@bf@gt #1}}
! 8: @catcode`@#=@other
! 9: @end iftex
! 10: @overfullrule=0pt
! 11: @documentlanguage ja
! 12: @c -*-texinfo-*-
! 13: @comment %**start of header
! 14: @comment --- おまじない終り ---
! 15:
! 16: @comment --- GNU info ファイルの名前 ---
! 17: @setfilename asir-contrib-noro_grcrt
! 18:
! 19: @comment --- タイトル ---
! 20: @settitle noro_grcrt
! 21:
! 22: @comment %**end of header
! 23: @comment %@setchapternewpage odd
! 24:
! 25: @comment --- おまじない ---
! 26: @ifinfo
! 27: @macro fref{name}
! 28: @ref{\name\,,@code{\name\}}
! 29: @end macro
! 30: @end ifinfo
! 31:
! 32: @iftex
! 33: @comment @finalout
! 34: @end iftex
! 35:
! 36: @titlepage
! 37: @comment --- おまじない終り ---
! 38:
! 39: @comment --- タイトル, バージョン, 著者名, 著作権表示 ---
! 40: @title noro_grcrt
! 41: @subtitle noro_grcrt User's Manual
! 42: @subtitle Edition 1.0
! 43: @subtitle Feb 2019
! 44:
! 45: @author by Masayuki Noro
! 46: @page
! 47: @vskip 0pt plus 1filll
! 48: Copyright @copyright{} Masayuki Noro
! 49: 2019. All rights reserved.
! 50: @end titlepage
! 51:
! 52: @comment --- おまじない ---
! 53: @synindex vr fn
! 54: @comment --- おまじない終り ---
! 55:
! 56: @comment --- @node は GNU info, HTML 用 ---
! 57: @comment --- @node の引数は node-name, next, previous, up ---
! 58: @node Top,, (dir), (dir)
! 59:
! 60: @comment --- @menu は GNU info, HTML 用 ---
! 61: @comment --- chapter 名を正確に並べる ---
! 62: @menu
! 63: * 準素分解パッケージ noro_grcrt.rr::
! 64: * Index::
! 65: @end menu
! 66:
! 67: @comment --- chapter の開始 ---
! 68: @comment --- 親 chapter 名を正確に ---
! 69: @node CRTパッケージ noro_grcrt.rr,,, Top
! 70: @chapter CRTパッケージ noro_grcrt.rr
! 71:
! 72: @comment --- section 名を正確に並べる ---
! 73: @menu
! 74: * CRTによるグレブナー基底計算::
! 75: * CRTに関する関数::
! 76: @end menu
! 77:
! 78: このマニュアルでは, asir-contrib パッケージに収録されている,
! 79: CRTパッケージ @samp{noro_grcrt.rr} について解説する.
! 80: このパッケージを使うには, まず @samp{noro_grcrt.rr} をロードする.
! 81: @example
! 82: [1831] load("noro_grcrt.rr");
! 83: @end example
! 84: このパッケージの函数を呼び出すには, 全て @code{noro_grcrt.} を先頭につける.
! 85: このマニュアルでは, 関連する組み込み関数についても解説する.
! 86: @example
! 87:
! 88: @end example
! 89:
! 90: @comment --- section の開始 ---
! 91: @comment --- 書体指定について ---
! 92: @comment --- @code{} はタイプライタ体表示 ---
! 93: @comment --- @var{} は斜字体表示 ---
! 94: @comment --- @b{} はボールド表示 ---
! 95: @comment --- @samp{} はファイル名などの表示 ---
! 96:
! 97: @node CRTによるグレブナー基底計算,,, CRTパッケージ noro_grcrt.rr
! 98:
! 99: @section CRTによるグレブナー基底計算
! 100:
! 101: @menu
! 102: * f4_chr::
! 103: * init_pprocs::
! 104: @end menu
! 105:
! 106: @node f4_chr,,, CRTによるグレブナー基底計算
! 107:
! 108: @subsection @code{f4_chr}
! 109: @findex noro_grcrt.f4_chr
! 110:
! 111: @table @t
! 112: @item noro_grcrt.f4_chr_dec(@var{b},@var{v},@var{ord}[|@var{options}])
! 113: CRT によりグレブナー基底候補を求める.
! 114: @end table
! 115:
! 116: @table @var
! 117: @item return
! 118: 多項式リスト
! 119:
! 120: @item b
! 121: 多項式リスト
! 122: @item v
! 123: 変数リスト
! 124: @item ord
! 125: 項順序型
! 126: @item options
! 127: 下の説明参照.
! 128: @end table
! 129:
! 130: @itemize @bullet
! 131: @item
! 132: 有限体上のグレブナー基底を @code{nd_f4} で計算し, それらを CRT で貼り合わせることで, 有理数体上のグレブナー基底候補を求める.
! 133: @item
! 134: 正当性のチェックは全く行わない.
! 135: @item
! 136: オプション @var{homo=1} を指定すると, 有限体上のグレブナー基底計算を⻫次化付きて計算する.
! 137: @item
! 138: オプション @var{weight} を指定すると, weight 付きて計算する.
! 139: @item
! 140: オプション @var{proc} を指定すると, 有限体上のグレブナー基底計算を並列行う.
! 141: @var{proc} て指定するのは
! 142: @code{ox_asir} のストリーム番号のリストで, @code{ noro_grcrt.init_pproc} により生成する.
! 143: @end itemize
! 144:
! 145: @example
! 146: [2465] P=noro_grcrt.init_pprocs([[0,4]]|nox=1)$
! 147: [2466] B=cyclic(8)$
! 148: [2467] V=[c0,c1,c2,c3,c4,c5,c6,c7]$
! 149: [2468] G=noro_grcrt.f4_chr(B,V,0|proc=P)$
! 150: ...
! 151: [Template,0,CRT,5.812,IR,11.388,#P,56]
! 152: 28.74sec(55.12sec)
! 153: @end example
! 154:
! 155: @node init_pprocs,,,CRTによるグレブナー基底計算
! 156:
! 157: @subsection @code{noro_grcrt.init_pprocs}
! 158: @findex noro_grcrt.init_pprocs
! 159:
! 160: @table @t
! 161: @item noro_grcrt.init_pprocs(@var{list}[|@var{nox}=0|1])
! 162: 並列計算用サーバを起動する.
! 163: @end table
! 164:
! 165: @table @var
! 166: @item return
! 167: ストリーム番号のリスト
! 168: @item list
! 169: リスト
! 170: @end table
! 171:
! 172: @itemize @bullet
! 173: @item
! 174: @code{ox_asir} をまとめて起動する.
! 175: @item
! 176: 引数 @var{list}は @var{[[host1,n1],[host2,n2],...]}の形のリストで, @var{hosti} に @var{ni} 個の
! 177: @code{ox_asir} を起動することを意味する. ここで @var{hosti=0} の場合, \code{asir}が実行されている
! 178: マシンを意味する.
! 179: @item
! 180: オプション @var{nox=1} が指定された場合, サーバ用のメッセージウィンドウは表示されない. デバッグ中は
! 181: このオプションを指定しない方が安全である.
! 182: @end itemize
! 183:
! 184: @example
! 185: [2465] P=noro_grcrt.init_pprocs([[0,2],["shinohara",2]]|nox=1);
! 186: [0,1,2,3]
! 187: @end example
! 188:
! 189:
! 190: @section CRTに関する関数
! 191:
! 192: @menu
! 193: * dp_chrem2::
! 194: * intdptoratdp::
! 195: @end menu
! 196:
! 197: @node dp_chrem2,,, CRTに関する関数
! 198:
! 199: @subsection @code{noro_grcrt.dp_chrem2}
! 200: @findex noro_grcrt.dp_chrem2
! 201:
! 202: @table @t
! 203: @item noro_grcrt.dp_chrem2(@var{g},@var{M},@var{gp},@var{p},@var{stat})
! 204: CRTによる貼り合わせを実行する.
! 205: @end table
! 206:
! 207: @table @var
! 208: @item return
! 209: チェックに失敗した個数
! 210:
! 211: @item g
! 212: 分散多項式の配列
! 213: @item M
! 214: 正整数
! 215: @item gp
! 216: 分散多項式の配列
! 217: @item p
! 218: 正整数
! 219: @item stat
! 220: 配列
! 221: @end table
! 222:
! 223: @itemize @bullet
! 224: @item
! 225: @var{g} mod @var{M}, @var{gp} mod @var{p} を CRT で貼り合わせた @var{g1} を求め, @var{g} に上書きする.
! 226: @var{g1} は @var{g1} = @var{g} mod @var{M}, @var{g1} = @var{gp} mod @var{gp} を満たす.
! 227:
! 228: @item
! 229: @var{p} は小さい整数(31bit 未満) でなければなrない.
! 230:
! 231: @item
! 232: @var{g[i]}, @var{gp[i]} は, サポートが一致した分散多項式でなければならない.
! 233: @var{gp[i]}, および @var{stat[i]}=0,1 の場合の@var{g[i]} はモニックでなければならない.
! 234:
! 235: @item
! 236: @var{stat}は長さが@var{g}の長さが等しい整数配列である.
! 237: 置き換えられ, その後 CRT か実行される. CRT 後 @var{stat[i]}=1 となる.
! 238: @var{stat[i]}=0,1 のとき, 単に CRT が行される.
! 239: @var{stat[i]}=2 のとき, @var{g[i]} mod @var{p} をモニック化したものと
! 240: @var{gp[i]} が比較され, 等しくない場合に,@var{ g[i]} は, 有理数変換前の @var{g} mod @var{M} に
! 241: 戻され, その後CRTが実行される.
! 242: @item
! 243: 外部関数において, 整数-有理数変換が成功した場合に@var{stat[i]}=2とすることで,
! 244: @code{dp_chrem2} を実行したあとに, 不適切な有理数への変換を検出することができる.
! 245: 返される値は, @var{stat[i]}=2 の場合に不適切な有理数変換を検出した個数である.
! 246: @end itemize
! 247:
! 248: @example
! 249: [2465] G=ltov([<<1,2>>+3*<<0,1>>,<<3,4>>+2*<<1,0>>])$
! 250: [2466] GM=ltov([<<1,2>>+5*<<0,1>>,<<3,4>>+7*<<1,0>>])$
! 251: [2467] Stat=vector(2)$
! 252: [2468] Mod=17$
! 253: [2469] P=19$
! 254: [2470] noro_grcrt.dp_chrem2(G,Mod,GM,P,Stat);
! 255: 0
! 256: [2471] G;
! 257: [ (1)*<<1,2>>+(309)*<<0,1>> (1)*<<3,4>>+(121)*<<1,0>> ]
! 258: [2472] Stat;
! 259: [ 1 1 ]
! 260: @end example
! 261:
! 262: @node noro_grcrt.intdptoratdp,,, CRTに関する関数
! 263:
! 264: @subsection @code{noro_grcrt.intdptoratdp}
! 265: @findex noro_grcrt.intdptoratdp
! 266:
! 267: @table @t
! 268: @item noro_grcrt.intdptoratdp(@var{f},@var{M},@var{B})
! 269: 整数-有理数変換を行う.
! 270: @end table
! 271:
! 272: @table @var
! 273: @item return
! 274: 多項式
! 275:
! 276: @item f
! 277: 分散多項式
! 278: @item M
! 279: @itemx B
! 280: 正整数
! 281: @end table
! 282:
! 283: @itemize @bullet
! 284: @item
! 285: @var{f}を法@var{M}で整数-有理数変換を行った結果を返す. 一つでも変換できなかった係数がある場合には
! 286: 0を返す.
! 287: @item
! 288: @var{B} は @var{M/2}の平方根を超えない最大の整数で, @code{noro_grcrt.calcb} で計算できる.
! 289: 複数の多項式の係数を同一の @var{M}, @var{B}で変換するので, この値をあらかじめ与えるようにしてある.
! 290: @end itemize
! 291:
! 292: @example
! 293: [2495] P=62884891$
! 294: [2496] A=<<1,2>>+(25632978)*<<0,1>>$
! 295: [2497] B=noro_grcrt.calcb(P);
! 296: 5607
! 297: [2498] noro_grcrt.intdptoratdp(A,P,B);
! 298: (1)*<<1,2>>+(-5321/1234)*<<0,1>>
! 299: @end example
! 300:
! 301: @comment --- おまじない ---
! 302: @node Index,,, Top
! 303: @unnumbered Index
! 304: @printindex fn
! 305: @printindex cp
! 306: @iftex
! 307: @vfill @eject
! 308: @end iftex
! 309: @summarycontents
! 310: @contents
! 311: @bye
! 312: @comment --- おまじない終り ---
! 313:
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>