=================================================================== RCS file: /home/cvs/OpenXM/src/asir-doc/exp/exp-ja.texi,v retrieving revision 1.26 retrieving revision 1.31 diff -u -p -r1.26 -r1.31 --- OpenXM/src/asir-doc/exp/exp-ja.texi 2008/01/29 05:42:05 1.26 +++ OpenXM/src/asir-doc/exp/exp-ja.texi 2009/02/23 05:51:23 1.31 @@ -1,4 +1,4 @@ -%% $OpenXM: OpenXM/src/asir-doc/exp/exp-ja.texi,v 1.25 2008/01/26 00:59:47 takayama Exp $ +%% $OpenXM: OpenXM/src/asir-doc/exp/exp-ja.texi,v 1.30 2009/02/23 04:00:53 takayama Exp $ \input texinfo @iftex @catcode`@#=6 @@ -121,6 +121,8 @@ ChangeLog の項目は www.openxm.org の cvswe * set_print_function:: * small_jacobi:: * flatten_quote:: +* printf:: +* fprintf:: * sprintf:: * quote_to_funargs:: * funargs_to_quote:: @@ -143,7 +145,13 @@ ChangeLog の項目は www.openxm.org の cvswe * asirgui.hnd:: * noro_matrix.rr: * f_res:: +* chdir:: +* pwd:: +* dcurrenttime:: +* node nd_gr nd_gr_trace nd_weyl_gr nd_weyl_gr_trace (module):: +* node nd_gr nd_gr_trace nd_weyl_gr nd_weyl_gr_trace (option):: + @end menu @comment --- ◯◯◯◯ 関数 quotetotex, quotetotex_env の説明 ◯◯◯◯ @@ -1223,39 +1231,60 @@ ChangeLog @node sprintf,,, 実験的仕様の関数 -@subsection @code{sprintf} +@subsection @code{printf}, @code{fprintf}, @code{sprintf} @findex sprintf @table @t +@item printf(@var{format}[,@var{args}]) +@item fprintf(@var{fd},@var{format}[,@var{args}]) @item sprintf(@var{format}[,@var{args}]) :: C に似たプリント関数 @end table @table @var @item return -文字列 +整数(printf,fprintf), 文字列(sprintf) @item format 文字列 +@item fd +非負整数(ファイル記述子) @item args オブジェクト @end table @itemize @bullet @item -フォーマット文字列 @var{format } にしたがい @var{args} を文字列に変換する. +@code{printf} は書式文字列 @var{format } にしたがい, オブジェクト @var{args} を標準出力に書き出す. @item -フォーマット文字列の中に @code{%a} (any) が利用可能. -@var{args} の個数はフォーマット文字列の中の @code{%a} の個数に等しくすること. +@code{fprintf} は結果を, ファイル記述子 @var{fd} の指すファイルに書き出す. +@item +@code{sprintf} は結果を文字列で返し, 標準出力には書き出さない. +@item +書式文字列の中で @code{%a} (any) が利用可能. +@var{args} の個数は書式文字列の中の @code{%a} の個数に等しくすること. +@item +ファイル記述子は, @code{open_file} 関数を用いて得ること. @end itemize @example -[0] sprintf("%a: rat = %a",10,x^2-1); - 10: rat = x^2-1 +[0] printf("%a: rat = %a\n",10,x^2-1)$ +10: rat = x^2-1 +[1] S=sprintf("%a: rat = %a",20,x^2-1)$ +[2] S; +20: rat = x^2-1 +[3] Fd=open_file("hoge.txt","w"); +0 +[4] fprintf(Fd,"Poly=%a\n",(x-1)^3)$ +[5] close_file(Fd)$ +[6] quit; + +$ cat hoge.txt +Poly=x^3-3*x^2+3*x-1 @end example @table @t @item 参照 -@ref{rtostr} +@ref{rtostr},@ref{open_file},@ref{close_file} @end table @comment --- ChangeLog を書く. 動機. ソースコードの位置. 変更日時 など CVSサーバを見るため @@ -1264,9 +1293,15 @@ ChangeLog ChangeLog @itemize @bullet @item - この関数は 2004-7-13 にコミットされた. + 関数 sprintfは 2004-7-13 にコミットされた. 変更をうけたソースコードは builtin/strobj (1.50) である. @item + 関数 printfは 2007-11-8 にコミットされた. + 変更をうけたソースコードは builtin/print.c (1.23) である. +@item + 関数 fprintfは 2008-11-18 にコミットされた. + 変更をうけたソースコードは builtin/file.c (1.25) である. +@item @code{%a} は Maple の sprintf の真似か. @end itemize @@ -2349,6 +2384,447 @@ ChangeLog @item OpenXM/src/ox_cdd, OpenXM/src/asir-contrib/packages/src/f_res.rr @end itemize + +@node chdir,,, 実験的仕様の関数 +@subsection @code{chdir}, @code{pwd} +@findex chdir +@findex pwd + +@comment --- ディレクトリ操作 --- +@table @t +@item chdir(@var{directory}) +@item pwd() +:: シェルコマンド cd と pwd に対応する操作. +@end table + +@table @var +@item return +文字列(@code{pwd}), 整数(@code{chdir}) +@item dirctory +文字列 +@end table + +@itemize @bullet +@item +@code{pwd} はカレントディレクトリを文字列で返す. +@item +@code{chdir} はカレントディレクトリを @var{directory} に変更する. 成功すれば 0 を失敗すれば -1 を返す. +@item +これらの関数は UNIX 版にのみ実装されている. +@end itemize + +@example +[0] S=pwd(); +/home/ohara +[1] chdir(".../taka"); +-1 +[2] chdir("/usr/bin"); +0 +@end example + +@comment --- ChangeLog を書く. 動機. ソースコードの位置. 変更日時 など CVSサーバを見るため +@comment --- openxm の外部からの寄与も述べる. Credit. +@noindent +ChangeLog +@itemize @bullet +@item +これらの関数は 2008-8-27 にコミットされた. +変更をうけたソースコードは builtin/miscf.c (1.27) である. +@end itemize + + +@node dcurrenttime,,, 実験的仕様の関数 +@subsection @code{dcurrenttime} +@findex dcurrenttime + +@comment --- 現在時刻を取得 --- +@table @t +@item dcurrenttime() +:: 現在時刻を取得. +@end table + +@table @var +@item return +浮動小数点数 +@end table + +@itemize @bullet +@item +返り値は1970年1月1日0時0分0秒からの経過秒数である. +@end itemize + +@example +[0] ctrl("real_digit", 16); +16 +[1] dcurrenttime(); +1226390851.34476 +[2] currenttime(); +1226390854 +@end example + +@table @t +@item 参照 +@ref{currenttime} +@end table + +@comment --- ChangeLog を書く. 動機. ソースコードの位置. 変更日時 など CVSサーバを見るため +@comment --- openxm の外部からの寄与も述べる. Credit. +@noindent +ChangeLog +@itemize @bullet +@item +この関数は 2008-9-12 にコミットされた. +変更をうけたソースコードは builtin/time.c (1.6) である. +@end itemize + +@node nk_restriction.restriction,,, 実験的仕様の関数 +@subsection @code{nk_restriction.restriction} +@comment --- 索引用キーワード +@findex nk_restriction.restriction + +@comment --- 関数の簡単な説明 --- +@table @t +@item nk_restriction.restriction(@var{Id}, @var{VL}, @var{DVL}, @var{W}) +:: ホロノミック D イデアル @var{Id} を重みベクトル @var{W} についての制限加群を返す。 +@end table + +@comment --- 引数の簡単な説明 --- +@table @var +@item Id +イデアルの生成元のリスト +@item VL +変数のリスト +@item DVL +変数のリスト(@var{VL} に対応する微分作用素の方の変数) +@item W +重みベクトルを表すリスト +@end table + +@itemize @bullet +@item +@var{W} の要素は非負整数で、0 番目の要素から連続して正の整数が入らなければならない。 +(すなわち、@code{[1,1,0,0,0]} は OK だが、 @code{[1,0,1,0,0]} はダメ) +@item +正の重みを持つ変数についての制限を行う。 +例えば、@var{VL} @code{=[x,y,z]}, @var{W} @code{=[1,1,0]} であれば +x,y について制限を行う。 +@end itemize + +以下は、イデアル +@tex +$I = D \cdot \{x \partial_x -1, y \partial_y - 1\} $ +@end tex +の +@tex $x$ @end tex +についての制限加群を計算した例である。 +@example +[1432] nk_restriction.restriction([x*dx-1,y*dy-1],[x,y],[dx,dy],[1,0]); +-- generic_bfct_and_gr :0.001sec(0.001629sec) +generic bfct : [[1,1],[s-1,1]] +S0 : 1 +B_{S0} length : 2 +-- fctr(BF) + base :0.000999sec(0.0005109sec) +[[y*dy-1,(y*dy-1)*dx,-1],[[1],[0]]] +[1433] +@end example + +@node nk_restriction.restriction_ideal,,, D 加群の制限に関する関数 +@subsection @code{nk_restriction.restriction_ideal} +@comment --- 索引用キーワード +@findex nk_restriction.restriction_ideal + +@comment --- 関数の簡単な説明 --- +@table @t +@item nk_restriction.restriction_ideal(@var{Id}, @var{VL}, @var{DVL}, @var{W}) +:: ホロノミック D イデアル @var{Id} を重みベクトル @var{W} についての制限イデアルを返す。 +@end table + +@comment --- 引数の簡単な説明 --- +@table @var +@item Id +イデアルの生成元のリスト +@item VL +変数のリスト +@item DVL +変数のリスト(@var{VL} に対応する微分作用素の方の変数) +@item W +重みベクトルを表すリスト +@end table + +@itemize @bullet +@item +@var{W} の要素は非負整数で、0 番目の要素から連続して正の整数が入らなければならない。 +(すなわち、@code{[1,1,0,0,0]} は OK だが、 @code{[1,0,1,0,0]} はダメ) +@item +正の重みを持つ変数についての制限を行う。 +例えば、@var{VL} @code{=[x,y,z]}, @var{W} @code{=[1,1,0]} であれば +x,y について制限を行う。 +@end itemize + +以下は、イデアル +@tex +$I = D \cdot \{x \partial_x -1, y \partial_y - 1\} $ +@end tex +の +@tex $x$ @end tex +についての制限イデアルを計算した例である。 +@example +[1346] nk_restriction.restriction_ideal([x*dx-1,y*dy-1],[x,y],[dx,dy],[1,0]); +-- generic_bfct_and_gr :0.002sec(0.001652sec) +generic bfct : [[1,1],[s-1,1]] +S0 : 1 +B_{S0} length : 2 +-- fctr(BF) + base :0sec(0.000566sec) +-- restriction_ideal_internal :0.001sec(0.0007441sec) +[-1] +[1347] +@end example + +@node nk_restriction.integration,,, 実験的仕様の関数 +@subsection @code{nk_restriction.integration} +@comment --- 索引用キーワード +@findex nk_restriction.integration + +@comment --- 関数の簡単な説明 --- +@table @t +@item nk_restriction.integration(@var{Id}, @var{VL}, @var{DVL}, @var{W}) +:: ホロノミック D イデアル @var{Id} を重みベクトル @var{W} についての積分加群を返す。 +@end table + +@comment --- 引数の簡単な説明 --- +@table @var +@item Id +イデアルの生成元のリスト +@item VL +変数のリスト +@item DVL +変数のリスト(@var{VL} に対応する微分作用素の方の変数) +@item W +重みベクトルを表すリスト +@end table + +@comment --- ここで関数の詳しい説明 --- +@comment --- @itemize〜@end itemize は箇条書き --- +@comment --- @bullet は黒点付き --- +@itemize @bullet +@item +@var{W} の要素は非負整数で、0 番目の要素から連続して正の整数が入らなければならない。 +(すなわち、@code{[1,1,0,0,0]} は OK だが、 @code{[1,0,1,0,0]} はダメ) +@item +正の重みを持つ変数についての積分を行う。 +例えば、@var{VL} @code{=[x,y,z]}, @var{W} @code{=[1,1,0]} であれば +x,y について積分を行う。 +@end itemize + +以下は、イデアル +@tex +$I = D \cdot \{2 t \partial_x + \partial_t, t \partial_t + 2 x \partial_x + 2\} $ +@end tex +の +@tex $t$ @end tex +についての積分イデアルを計算した例である。([SST, Ex5.5.2, Ex5.5.6]) +@example +[1351] nk_restriction.integration([2*t*dx+dt,2*x*dx+t*dt+2],[t,x], +[dt,dx],[1,0]); +-- generic_bfct_and_gr :0.001sec(0.001796sec) +generic bfct : [[1,1],[s,1],[s-1,1]] +S0 : 1 +B_{S0} length : 2 +-- fctr(BF) + base :0.001sec(0.0006731sec) +[[4*x*dx^2+6*dx,-4*t*x*dx^2-6*t*dx,2*x*dx+1,-2*t*x*dx,2*t*dx],[[1],[0]]] +@end example + +@node nk_restriction.integration_ideal,,, 実験的仕様の関数 +@subsection @code{nk_restriction.integration_ideal} +@comment --- 索引用キーワード +@findex nk_restriction.integration_ideal + +@comment --- 関数の簡単な説明 --- +@table @t +@item nk_restriction.integration_ideal(@var{Id}, @var{VL}, @var{DVL}, @var{W}) +:: ホロノミック D イデアル @var{Id} を重みベクトル @var{W} についての積分イデアルを返す。 +@end table + +@comment --- 引数の簡単な説明 --- +@table @var +@item Id +イデアルの生成元のリスト +@item VL +変数のリスト +@item DVL +変数のリスト(@var{VL} に対応する微分作用素の方の変数) +@item W +重みベクトルを表すリスト +@end table + +@comment --- ここで関数の詳しい説明 --- +@comment --- @itemize〜@end itemize は箇条書き --- +@comment --- @bullet は黒点付き --- +@itemize @bullet +@item +@var{W} の要素は非負整数で、0 番目の要素から連続して正の整数が入らなければならない。 +(すなわち、@code{[1,1,0,0,0]} は OK だが、 @code{[1,0,1,0,0]} はダメ) +@item +正の重みを持つ変数についての積分を行う。 +例えば、@var{VL} @code{=[x,y,z]}, @var{W} @code{=[1,1,0]} であれば +x,y について積分を行う。 +@end itemize + +以下は、イデアル +@tex +$I = D \cdot \{2 t \partial_x + \partial_t, t \partial_t + 2 x \partial_x + 2\} $ +@end tex +の +@tex $t$ @end tex +についての積分イデアルを計算した例である。([SST, Ex5.5.2, Ex5.5.6]) +@example +[1431] nk_restriction.integration_ideal([2*t*dx+dt,t*dt+2*x*dx+2],[t,x], +[dt,dx],[1,0]); +-- generic_bfct_and_gr :0.002999sec(0.002623sec) +generic bfct : [[1,1],[s,1],[s-1,1]] +S0 : 1 +B_{S0} length : 2 +-- fctr(BF) + base :0.001sec(0.001091sec) +-- integration_ideal_internal :0.002sec(0.001879sec) +[2*x*dx+1] +[1432] +@end example + +@noindent +ChangeLog +@itemize @bullet +@item これらの関数は OpenXM/src/asir-contrib/packages/src/nk_restriction.rr で定義されている. nk_restriction.rr, 1.1--1.6 を見よ. +@end itemize + +@node nd_gr nd_gr_trace nd_weyl_gr nd_weyl_gr_trace (module),,, 実験的仕様の関数 +@subsection @code{nd_gr}, @code{nd_gr_trace} (加群) +@findex nd_gr (module) +@findex nd_gr_trace (module) +@findex nd_weyl_gr (module) +@findex nd_weyl_gr_trace (module) + +@comment --- nd_gr, nd_gr_trace における加群のグレブナー基底計算 --- +@table @t +@item nd_gr(@var{gen},@var{vars},@var{char},@var{ord}) +@itemx nd_gr_trace(@var{gen},@var{vars},@var{homo},@var{char},@var{ord}) +@item nd_weyl_gr(@var{gen},@var{vars},@var{char},@var{ord}) +@itemx nd_weyl_gr_trace(@var{gen},@var{vars},@var{homo},@var{char},@var{ord}) +:: 部分加群のグレブナー基底の計算 +@end table + +@table @var +@item gen +リストのリスト +@item ord +@var{[IsPOT,Ord]} なるリスト +@item return +リストのリスト +@end table + +@itemize @bullet +@item 多項式環あるいはワイル代数上の自由加群の部分加群のグレブナー基底 +を計算する. 結果はリストのリストである. 各要素リストは, 自由加群の +元であるベクトルとみなす. +@item @var{ord} として @var{[IsPOT,Ord]} という2要素リストが指定された +場合, 加群のグレブナー基底計算を実行する. この場合, @var{gen} は, 多項式 +のリストのリストとして与える必要がある. +@item @var{IsPOT} が 1 の場合, POT (position over term), 0 の +場合 TOP (term over position) で比較する. 基礎環での項比較は @var{Ord} +で行う. +@item 説明されていない引数は, イデアルの場合の解説を参照のこと. +@end itemize + +@example +[0] Gen=[[x,y,z],[y^2+x,x^2,z],[y^2,z^3+x,x+z]]; +[[x,y,z],[x+y^2,x^2,z],[y^2,x+z^3,x+z]] +[1] nd_gr(Gen,[x,y,z],0,[0,0]); +[[x,y,z],[y^2,x^2-y,0],[y^2,x+z^3,x+z],[y^3+z^3*y^2,y^3*x-y^3, +-x^3-z*x^2+(z*y^2+y)*x-z*y^2+z*y],[0,0,x^4+z*x^3+(-z*y^2-y)*x^2 ++(-y^3+z*y^2-z*y)*x+z^4*y^2]] +@end example + +@table @t +@item 参照 +@ref{nd_gr}, @ref{nd_gr_trace} +@end table + +@node nd_gr nd_gr_trace nd_weyl_gr nd_weyl_gr_trace (option),,, 実験的仕様の関数 +@subsection @code{nd_gr}, @code{nd_gr_trace} (option) +@findex nd_gr (option) +@findex nd_gr_trace (option) +@findex nd_weyl_gr (option) +@findex nd_weyl_gr_trace (option) + +@comment --- nd_gr, nd_gr_trace のオプション --- + +@table @t +@item nd_gr(@var{...}[|@var{opt},@var{opt},@dots{}]) +@itemx nd_gr_trace(@var{...}[|@var{opt},@var{opt},@dots{}]) +@itemx nd_weyl_gr(@var{...}[|@var{opt},@var{opt},@dots{}]) +@itemx nd_weyl_gr_trace(@var{...}[|@var{opt},@var{opt},@dots{}]) +:: グレブナー基底計算に関する種々のオプションの説明 +@end table + +@table @var +@item opt +@var{key=value} なるオプション設定 +@item return +オプションにより異なる +@end table + +@itemize @bullet +@item グレブナー基底計算をオプションにより制御する. +@item 現状では次の 3 つのオプションを受け付ける. + +@table @var +@item gentrace +@var{value} が 0 でないとき, グレブナー基底の計算経過情報を出力する. +@item gentsyz +@var{value} が 0 でないとき, 計算されたグレブナー基底に対する syzygy の生成系を出力する. +@item nora +@var{value} が 0 でないとき, 最終ステップで相互簡約を行わない. +@end table + +@item @var{gentrace} が指定された場合, 出力は, +@var{[GB,Homo,Trace,IntRed,Ind,InputRed,SpairTrace]} なるリストである. 各要素の意味は +次の通りである. +@table @var +@item GB +グレブナー基底 +@item Homo +中間基底が斉次化されている場合 1, そうでない場合 0. +@item Trace +全中間基底に対する計算経過情報 +@item IntRed +相互簡約に対する計算経過情報 +@item Ind +簡約グレブナー基底の各要素の, 全中間基底のにおけるインデックス +@item InputRed +各入力多項式をグレブナー基底で簡約して剰余 0 を得るまでの計算経過情報 +(@var{gensyz} が指定された場合) +@item SpairTrace +簡約グレブナー基底に対する S 多項式を簡約して剰余 0 を得るまでの計算経過情報 +(syzygy 加群の生成系の要素のみ; @var{gensyz} が指定された場合) +@end table +@item 詳細は, 入力多項式集合とグレブナー基底の相互変換行列, および syzygy 計算 +関数の項で説明する予定. +@end itemize + +@example +[0] C=[c3*c2*c1*c0-1,((c2+c3)*c1+c3*c2)*c0+c3*c2*c1,...] +[1] D=nd_gr_trace(C,[c0,c1,c2,c3,c4],0,1,0|gentrace=1,gensyz=1)$ +[2] D[0]; +[c0+c1+c2+c3,-c1^2-2*c3*c1-c3^2,...] +[3] D[2]; +[[[0,0,1],[1,1,1],[2,2,1],[3,3,1]],[4,[[1,2,(1)*<<0,0,0,0>>,1],...] +[4] D[6]; +[[-1,[[1,0,(1)*<<0,0,2,4>>,1],[1,6,(-1)*<<1,0,0,0>>,1],...] +@end example + +@table @t +@item 参照 +@ref{nd_gr}, @ref{nd_gr_trace} +@end table @comment ----------- 以下は見本. 消すな. @comment ****************************************************************