=================================================================== RCS file: /home/cvs/OpenXM/src/asir-doc/exp/exp-ja.texi,v retrieving revision 1.29 retrieving revision 1.33 diff -u -p -r1.29 -r1.33 --- OpenXM/src/asir-doc/exp/exp-ja.texi 2009/02/23 03:41:26 1.29 +++ OpenXM/src/asir-doc/exp/exp-ja.texi 2009/05/16 03:13:07 1.33 @@ -1,4 +1,4 @@ -%% $OpenXM: OpenXM/src/asir-doc/exp/exp-ja.texi,v 1.28 2008/11/19 03:25:38 ohara Exp $ +%% $OpenXM: OpenXM/src/asir-doc/exp/exp-ja.texi,v 1.32 2009/02/23 06:10:42 noro Exp $ \input texinfo @iftex @catcode`@#=6 @@ -148,6 +148,8 @@ ChangeLog の項目は www.openxm.org の cvswe * 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 @@ -237,8 +239,6 @@ $\partial_0, \partial_1, \cdots$ dp_dvars_origin: dp_vars_hweyl が 1 の時のインデックスの始まりの値. @item conv_func: ユーザ定義の変換関数をよぶ. -@item - @end itemize @comment --- @example〜@end example は実行例の表示 --- @@ -489,9 +489,9 @@ Sugar strategy を適用するときの weight vector.  @comment ~taka/this03/misc-2003/A2/dp @item 順序 order は次の文法で定義する. @{, @} は 0 回以上の繰り返しを意味する. @example - order : '[' orderElement { ',' orderElement } ']' + order : '[' orderElement @{ ',' orderElement @} ']' orderElement : weightVec | builtinOrder - weightVec : '[' weightElement { ',' weightElement } ']' + weightVec : '[' weightElement @{ ',' weightElement @} ']' builtiniOrder : '[' orderName ',' setOfVariables ']' weightElement : NUMBER | setOfVariables ',' NUMBER setOfVariables: V | range(V,V) @@ -671,9 +671,9 @@ ChangeLog @end itemize @example -[219] struct point { x, y, color}; +[219] struct point @{ x, y, color@}; [220] P = newstruct(point); -{0,0,0} +@{0,0,0@} [221] P->x = 10$ P->y=5$ P->color="red"$ [222] get_element_names(P); [x,y,color] @@ -1034,9 +1034,9 @@ ChangeLog @end itemize @example -[219] def my_output(F) { +[219] def my_output(F) @{ print("Out: ",0); print(rtostr(F)); - } + @} [220] set_print_function("my_output"); Out: 0 [221] 1+2; @@ -1853,7 +1853,7 @@ qt_normalize(`x^2,2); @noindent ChangeLog @itemize @bullet -@item +@item -----まだ書いてない. @end itemize @@ -2018,7 +2018,7 @@ qt_normalize(quote( 1+(x+y)+(x+y)^2),1); @noindent ChangeLog @itemize @bullet -@item +@item -----まだ書いてない. @end itemize @@ -2240,61 +2240,28 @@ qt 系の関数が開発された. @end itemize @example -// Visual C++ 用のテストプログラム. 標準入力を asirgui へ送り込む. -// test.cpp : コンソール アプリケーション用のエントリ ポイントの定義 -// +// cl test.c user32.lib -#include "stdafx.h" -#include "test.h" #include #include #include -#include #include -#ifdef _DEBUG -#define new DEBUG_NEW -#undef THIS_FILE -static char THIS_FILE[] = __FILE__; -#endif +int main() +@{ -///////////////////////////////////////////////////////////////////////////// -// 唯一のアプリケーション オブジェクト - -CWinApp theApp; - -using namespace std; - -int _tmain(int argc, TCHAR* argv[], TCHAR* envp[]) -{ - int nRetCode = 0; - - // MFC の初期化および初期化失敗時のエラーの出力 - if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0)) - { - // TODO: 必要に応じてエラー コードを変更してください。 - cerr << _T("Fatal Error: MFC initialization failed") << endl; - nRetCode = 1; - } - else - { - // TODO: この位置にアプリケーションの動作を記述してください。 - CString strHello; - strHello.LoadString(IDS_HELLO); - cout << (LPCTSTR)strHello << endl; - } HWND hnd; FILE *fp = fopen("c:/Program Files/asir/bin/asirgui.hnd","r"); fscanf(fp,"%d",&hnd); fclose(fp); - while (1) { + while (1) @{ int c; c = getchar(); if ( c == '#' ) break; PostMessage(hnd,WM_CHAR,c,1); - } - return nRetCode; -} + @} + return 0; +@} @end example @table @t @@ -2520,7 +2487,7 @@ $I = D \cdot \{x \partial_x -1, y \partial_y - 1\} $ -- generic_bfct_and_gr :0.001sec(0.001629sec) generic bfct : [[1,1],[s-1,1]] S0 : 1 -B_{S0} length : 2 +B_@{S0@} length : 2 -- fctr(BF) + base :0.000999sec(0.0005109sec) [[y*dy-1,(y*dy-1)*dx,-1],[[1],[0]]] [1433] @@ -2571,7 +2538,7 @@ $I = D \cdot \{x \partial_x -1, y \partial_y - 1\} $ -- generic_bfct_and_gr :0.002sec(0.001652sec) generic bfct : [[1,1],[s-1,1]] S0 : 1 -B_{S0} length : 2 +B_@{S0@} length : 2 -- fctr(BF) + base :0sec(0.000566sec) -- restriction_ideal_internal :0.001sec(0.0007441sec) [-1] @@ -2627,7 +2594,7 @@ $I = D \cdot \{2 t \partial_x + \partial_t, t \partial -- generic_bfct_and_gr :0.001sec(0.001796sec) generic bfct : [[1,1],[s,1],[s-1,1]] S0 : 1 -B_{S0} length : 2 +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 @@ -2673,7 +2640,8 @@ x,y について積分を行う。 $I = D \cdot \{2 t \partial_x + \partial_t, t \partial_t + 2 x \partial_x + 2\} $ @end tex の -@tex $t$ @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], @@ -2681,14 +2649,148 @@ $I = D \cdot \{2 t \partial_x + \partial_t, t \partial -- generic_bfct_and_gr :0.002999sec(0.002623sec) generic bfct : [[1,1],[s,1],[s-1,1]] S0 : 1 -B_{S0} length : 2 +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 ****************************************************************