[BACK]Return to gtt_ekn-ja.texi CVS log [TXT][DIR] Up to [local] / OpenXM / src / asir-contrib / packages / doc / gtt_ekn

Diff for /OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi between version 1.15 and 1.18

version 1.15, 2019/03/20 02:08:55 version 1.18, 2019/04/09 00:48:14
Line 1 
Line 1 
 %% $OpenXM: OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi,v 1.14 2019/03/19 07:36:21 takayama Exp $  %% $OpenXM: OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi,v 1.17 2019/04/04 22:49:40 takayama Exp $
 %% xetex gtt_ekn-ja.texi   (.texi までつける. )  %% xetex gtt_ekn-ja.texi   (.texi までつける. )
 %% 以下コメントは @comment で始める.  \input texinfo 以降は普通の tex 命令は使えない.  %% 以下コメントは @comment で始める.  \input texinfo 以降は普通の tex 命令は使えない.
 \input texinfo-ja  \input texinfo-ja
Line 135  gtt_ekn/test-t1.rr 
Line 135  gtt_ekn/test-t1.rr 
 * gtt_ekn.get_svalue::  * gtt_ekn.get_svalue::
 * gtt_ekn.assert1::  * gtt_ekn.assert1::
 * gtt_ekn.assert2::  * gtt_ekn.assert2::
 * gtt_ekn.prob2::  * gtt_ekn.assert3::
   * gtt_ekn.prob1::
 @end menu  @end menu
   
 @node 超幾何関数E(k,n),,, 2元分割表HGMの関数  @node 超幾何関数E(k,n),,, 2元分割表HGMの関数
Line 229  gmvector は
Line 230  gmvector は
 @item  @item
 周辺和 @var{beta}の時の正規化定数のセル確率 @var{p} に対する値は 多項式に退化した E(k,n) の値で表現できる. 文献 [TKT2015], [GM2016] 参照.  周辺和 @var{beta}の時の正規化定数のセル確率 @var{p} に対する値は 多項式に退化した E(k,n) の値で表現できる. 文献 [TKT2015], [GM2016] 参照.
 @item  @item
   以下の option は expectation その他でも使える.
   @item
 option crt=1 (crt = Chinese remainder theorem) を与えると, 分散計算をおこなう  option crt=1 (crt = Chinese remainder theorem) を与えると, 分散計算をおこなう
 [T2016].  [T2016].
 分散計算用の各種パラメータの設定は  分散計算用の各種パラメータの設定は
 gtt_ekn.setup で行なう.  gtt_ekn.setup で行なう.
   @item
   option bs=1.  binary splitting method で matrix factorial を計算.
   一般に 3x3 では効果あり(assert2(15|bs=1)), 5x5 (test5x5(20|bs=1))では遅くなる.
   デフォールトは bs=0.
   @item
   option path. contiguity を適用する path をきめるアルゴリズムを指定.
   path=2 (後藤, 松本の論文 [GM2016] の path). path=3 (論文 [TGKT] の path).
   デフォールトは path=3.
   @item
   option interval. 通常の matrix factorial の計算では, 分母と分子をそれぞれ整数計算で計算し最後に約分をする. しかしながら数の中間膨張が一般的に発生しその中間膨張を解消するため
   約分を一定間隔で行うと計算効率がよくなる.
   interval に整数値を設定することにより行列による一次変換を interval 回するたびに約分を行う.
   interval の最適値は問題毎に異なるためシステムがデフォールト値を設定することはない.
   @item
   option x=1. subprocess 毎に window を開く.
 @end itemize  @end itemize
   
 @comment --- @example〜@end example は実行例の表示 ---  @comment --- @example〜@end example は実行例の表示 ---
Line 259  T3=T2*D;
Line 277  T3=T2*D;
 n=2; Hypergeometric2F1[-36*n,-11*n,2*n,(1-1/n)/56]  n=2; Hypergeometric2F1[-36*n,-11*n,2*n,(1-1/n)/56]
 @end example  @end example
   
   例: interval option
   @example
   [4009] P=gtt_ekn3.prob1(5,5,100);
   [[[100,200,300,400,500],[100,200,300,400,500]],[[1,1/2,1/3,1/5,1/7],[1,1/11,1/13,1/17,1/19],[1,1/23,1/29,1/31,1/37],[1,1/41,1/43,1/47,1/53],[1,1,1,1,1]]]
   
   [4010] util_timing(quote(gtt_ekn3.gmvector([[100,200,300,400,500],[100,200,300,400,500]], [[1,1/2,1/3,1/5,1/7],[1,1/11,1/13,1/17,1/19],[1,1/23,1/29,1/31,1/37],[1,1/41,1/43,1/47,1/53],[1,1,1,1,1]])))[1];
   [cpu,72.852,gc,0,memory,4462742364,real,72.856]
   
   [4011] util_timing(quote(gtt_ekn3.gmvector([[100,200,300,400,500],[100,200,300,400,500]], [[1,1/2,1/3,1/5,1/7],[1,1/11,1/13,1/17,1/19],[1,1/23,1/29,1/31,1/37],[1,1/41,1/43,1/47,1/53],[1,1,1,1,1]]|interval=100)))[1];
   [cpu,67.484,gc,0,memory,3535280544,real,67.4844]
   @end example
   
 参考: 2 x m 分割表(Lauricella FD)についてはパッケージ tk_fd でも下記のように同等な  参考: 2 x m 分割表(Lauricella FD)についてはパッケージ tk_fd でも下記のように同等な
 計算ができる.  計算ができる.
 守備範囲の異なるプログラム同士の比較, debug 用参考.  守備範囲の異なるプログラム同士の比較, debug 用参考.
Line 326  ChangeLog
Line 356  ChangeLog
 @item  @item
  この関数は   この関数は
 [GM2016] のアルゴリズムおよび  [GM2016] のアルゴリズムおよび
 [T2016] による modular method を用いた高速化を実装したものである.  [T2016] による modular method を用いた高速化,
   [TGKT] の高速化を実装したものである.
 @item  @item
  変更を受けたファイルは   変更を受けたファイルは
  OpenXM/src/asir-contrib/packages/src/gtt_ekn.rr 1.1, gtt_ekn/ekn_pfaffian_8.rr   OpenXM/src/asir-contrib/packages/src/gtt_ekn.rr 1.1, gtt_ekn/ekn_pfaffian_8.rr
   @item
    interval option について変更を受けたファイルは
    OpenXM/src/asir-contrib/packages/src/gtt_ekn3/ekn_eval.rr 1.6
 @end itemize  @end itemize
   
   
Line 374  nc は gmvector の値を元に, [GM2016] の Prop
Line 408  nc は gmvector の値を元に, [GM2016] の Prop
 option crt=1 (crt = Chinese remainder theorem) を与えると, 分散計算をおこなう.  option crt=1 (crt = Chinese remainder theorem) を与えると, 分散計算をおこなう.
 分散計算用の各種パラメータの設定は  分散計算用の各種パラメータの設定は
 gtt_ekn.setup で行なう.  gtt_ekn.setup で行なう.
   その他の option は gmvector を参照.
 @end itemize  @end itemize
   
 @comment --- @example〜@end example は実行例の表示 ---  @comment --- @example〜@end example は実行例の表示 ---
Line 520  ChangeLog
Line 555  ChangeLog
 @comment --- @bullet は黒点付き ---  @comment --- @bullet は黒点付き ---
 @itemize @bullet  @itemize @bullet
 @item  @item
 [GM2016] の Algorithm 7.8 の実装.  [GM2016] の Algorithm 7.8 の実装. [TGKT] による高速化版 (path=3) がデフォールト.
 @item option crt=1 (crt = Chinese remainder theorem) を与えると, 分散計算をおこなう.  @item option crt=1 (crt = Chinese remainder theorem) を与えると, 分散計算をおこなう.
 分散計算用の各種パラメータの設定は  分散計算用の各種パラメータの設定は
 gtt_ekn.setup で行なう.  gtt_ekn.setup で行なう.
 @item option index を与えると, 指定された成分の期待値のみ計算する.  @item option index を与えると, 指定された成分の期待値のみ計算する.
 たとえば 2 x 2 分割表で index=[[0,0],[1,1]] と指定すると, 1 のある成分の期待値のみ計算する.  たとえば 2 x 2 分割表で index=[[0,0],[1,1]] と指定すると, 1 のある成分の期待値のみ計算する.
   @item その他の option は gmvector を参照.
 @end itemize  @end itemize
   
 @comment --- @example〜@end example は実行例の表示 ---  @comment --- @example〜@end example は実行例の表示 ---
Line 890  ChangeLog
Line 926  ChangeLog
 @node gtt_ekn.get_svalue,,, 超幾何関数E(k,n)  @node gtt_ekn.get_svalue,,, 超幾何関数E(k,n)
 @node gtt_ekn.assert1,,, 超幾何関数E(k,n)  @node gtt_ekn.assert1,,, 超幾何関数E(k,n)
 @node gtt_ekn.assert2,,, 超幾何関数E(k,n)  @node gtt_ekn.assert2,,, 超幾何関数E(k,n)
   @node gtt_ekn.assert3,,, 超幾何関数E(k,n)
 @node gtt_ekn.prob1,,, 超幾何関数E(k,n)  @node gtt_ekn.prob1,,, 超幾何関数E(k,n)
 @subsection @code{gtt_ekn.set_debug_level}, @code{gtt_ekn.show_path}, @code{gtt_ekn.get_svalue}, @code{gtt_ekn.assert1}, @code{gtt_ekn.assert2}, @code{gtt_ekn.prob1}  @subsection @code{gtt_ekn.set_debug_level}, @code{gtt_ekn.show_path}, @code{gtt_ekn.get_svalue}, @code{gtt_ekn.assert1}, @code{gtt_ekn.assert2}, @code{gtt_ekn.assert3}, @code{gtt_ekn.prob1}
 @comment --- 索引用キーワード  @comment --- 索引用キーワード
 @findex gtt_ekn.set_debug_level  @findex gtt_ekn.set_debug_level
 @findex gtt_ekn.contiguity_mat_list_2  @findex gtt_ekn.contiguity_mat_list_2
Line 899  ChangeLog
Line 936  ChangeLog
 @findex gtt_ekn.get_svalue  @findex gtt_ekn.get_svalue
 @findex gtt_ekn.assert1  @findex gtt_ekn.assert1
 @findex gtt_ekn.assert2  @findex gtt_ekn.assert2
   @findex gtt_ekn.assert3
 @findex gtt_ekn.prob1  @findex gtt_ekn.prob1
   
 @table @t  @table @t
Line 908  ChangeLog
Line 946  ChangeLog
 @item gtt_ekn.get_svalue()  static 変数の値を得る.  @item gtt_ekn.get_svalue()  static 変数の値を得る.
 @item gtt_ekn.assert1(@var{N})  2x2 分割表で動作チェック.  @item gtt_ekn.assert1(@var{N})  2x2 分割表で動作チェック.
 @item gtt_ekn.assert2(@var{N})  3x3 分割表で動作チェック.  @item gtt_ekn.assert2(@var{N})  3x3 分割表で動作チェック.
   @item gtt_ekn.assert3(@var{R1}, @var{R2}, @var{Size})  R1 x R2 分割表で並列動作の動作チェック.
 @item gtt_ekn.prob1(@var{R1},@var{R2},@var{Size})  R1 x R2 分割表用のテストデータを作る.  @item gtt_ekn.prob1(@var{R1},@var{R2},@var{Size})  R1 x R2 分割表用のテストデータを作る.
 ::  ::
 @end table  @end table
Line 926  ChangeLog
Line 965  ChangeLog
 @item (@var{m} & 0x4) == 0x4 の時 matrix factorial の計算の呼び出し引数を表示.  @item (@var{m} & 0x4) == 0x4 の時 matrix factorial の計算の呼び出し引数を表示.
 @item @var{N} は問題の周辺和のサイズ.  @item @var{N} は問題の周辺和のサイズ.
 @item @code{get_svalue} の戻り値は @code{[Ekn_plist,Ekn_IDL,Ekn_debug,Ekn_mesg,XRule,ARule,Verbose,Ekn_Rq]} の値.  @item @code{get_svalue} の戻り値は @code{[Ekn_plist,Ekn_IDL,Ekn_debug,Ekn_mesg,XRule,ARule,Verbose,Ekn_Rq]} の値.
   @item assert3 の options:  x=1, subprocess の window を表示. nps=m, m 個のプロセスで contiguity を求める (contiguity_mat_list_3).  crt, interval などは gmvector などと共通の
   option.  timing data を表示するには load("gtt_ekn3/ekn_eval-timing.rr"); しておく.
 @end itemize  @end itemize
   
 @comment --- @example〜@end example は実行例の表示 ---  @comment --- @example〜@end example は実行例の表示 ---
Line 1005  Try [[crt,1]]
Line 1046  Try [[crt,1]]
   
 例.  例.
 @example  @example
   3x5 分割表. 周辺和は 10 に比例する一定の数(factor option も関係. ソースを参照).
   cell 確率は1/素数で生成される.
   @comment grep testnxn ekn/Prog2/*.rr ; grep test_nxn ekn/Prog2/*.rr も見よ.
 [9054] L=gtt_ekn.prob1(3,5,10 | factor=1, factor_row=3);  [9054] L=gtt_ekn.prob1(3,5,10 | factor=1, factor_row=3);
 [[[10,20,420],[30,60,90,120,150]],[[1,1/2,1/3,1/5,1/7],[1,1/11,1/13,1/17,1/19],[1,1,1,1,1]]]  [[[10,20,420],[30,60,90,120,150]],[[1,1/2,1/3,1/5,1/7],[1,1/11,1/13,1/17,1/19],[1,1,1,1,1]]]
 [9055] number_eval(gtt_ekn.expectation(L[0],L[1]));  [9055] number_eval(gtt_ekn.expectation(L[0],L[1]));
 [ 0.434161208918863  ... snip ]  [ 0.434161208918863  ... snip ]
   @end example
   
   例:
   @example
   [5779] import("gtt_ekn3.rr"); load("gtt_ekn3/ekn_eval-timing.rr");
   [5780] gtt_ekn3.assert3(5,5,100 | nps=32, interval=100);
    -- snip
   Parallel method: Number of process=32, File name tmp-gtt_ekn3/p300.txt is written.
   Number of processes = 32.
     -- snip
   initialPoly of path=3: [ 2.184 0 124341044 2.1831 ] [CPU(s),0,*,real(s)]
   contiguity_mat_list_3 of path=3: [ 0.04 0 630644 9.6774 ] [CPU(s),0,*,real(s)]
   Note: interval option will lead faster evaluation. We do not use g_mat_fac_itor (crt). Call gtt_ekn3.setup(); to use the crt option.
   g_mat_fac of path=3: [ 21.644 0 1863290168 21.6457 ] [CPU(s),0,*,real(s)]
   Done. Saved in 2.ab
   Diff (should be 0)=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,..., 0,0,0]
 @end example  @end example
   
 @comment --- 参照(リンク)を書く ---  @comment --- 参照(リンク)を書く ---

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.18

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>