=================================================================== RCS file: /home/cvs/OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi,v retrieving revision 1.13 retrieving revision 1.16 diff -u -p -r1.13 -r1.16 --- OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi 2019/03/19 03:07:51 1.13 +++ OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi 2019/03/21 00:33:45 1.16 @@ -1,4 +1,4 @@ -%% $OpenXM: OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi,v 1.12 2019/03/07 00:43:51 takayama Exp $ +%% $OpenXM: OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi,v 1.15 2019/03/20 02:08:55 takayama Exp $ %% xetex gtt_ekn-ja.texi (.texi までつける. ) %% 以下コメントは @comment で始める. \input texinfo 以降は普通の tex 命令は使えない. \input texinfo-ja @@ -41,7 +41,7 @@ @title 2元分割表HGM関数 @subtitle Risa/Asir 2元分割表HGM関数説明書 @subtitle 1.2 版 -@subtitle 2019 年 3 月 19 日 +@subtitle 2019 年 3 月 20 日 @author by Y.Goto, Y.Tachibana, N.Takayama @page @@ -130,6 +130,7 @@ gtt_ekn/test-t1.rr * gtt_ekn.upAlpha:: * gtt_ekn.cmle:: * gtt_ekn.set_debug_level:: +* gtt_ekn.contiguity_mat_list_2:: * gtt_ekn.show_path:: * gtt_ekn.get_svalue:: * gtt_ekn.assert1:: @@ -228,10 +229,20 @@ gmvector は @item 周辺和 @var{beta}の時の正規化定数のセル確率 @var{p} に対する値は 多項式に退化した E(k,n) の値で表現できる. 文献 [TKT2015], [GM2016] 参照. @item +以下の option は expectation でも同じ. +@item option crt=1 (crt = Chinese remainder theorem) を与えると, 分散計算をおこなう [T2016]. 分散計算用の各種パラメータの設定は 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 (後藤, 松本の論文の path). path=3 (論文 tgkt の path). +デフォールトは path=3. @end itemize @comment --- @example〜@end example は実行例の表示 --- @@ -884,6 +895,7 @@ ChangeLog @comment --- 個々の関数の説明の開始 --- @comment --- section 名を正確に --- @node gtt_ekn.set_debug_level,,, 超幾何関数E(k,n) +@node gtt_ekn.contiguity_mat_list_2,,, 超幾何関数E(k,n) @node gtt_ekn.show_path,,, 超幾何関数E(k,n) @node gtt_ekn.get_svalue,,, 超幾何関数E(k,n) @node gtt_ekn.assert1,,, 超幾何関数E(k,n) @@ -892,6 +904,7 @@ ChangeLog @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} @comment --- 索引用キーワード @findex gtt_ekn.set_debug_level +@findex gtt_ekn.contiguity_mat_list_2 @findex gtt_ekn.show_path @findex gtt_ekn.get_svalue @findex gtt_ekn.assert1 @@ -900,6 +913,7 @@ ChangeLog @table @t @item gtt_ekn.set_debug_level(@var{m}) debug メッセージのレベルを設定. +@item gtt_ekn.contiguity_mat_list_2 使用する contiguity を構成. @item gtt_ekn.show_path() どのように contiguity を適用したかの情報. @item gtt_ekn.get_svalue() static 変数の値を得る. @item gtt_ekn.assert1(@var{N}) 2x2 分割表で動作チェック. @@ -960,6 +974,15 @@ A=gtt_ekn.marginaltoAlpha_list([[400,410,1011],[910,41 [ 2 1 5 4 3 ] @end example +例. 値を計算せずに path のみ求めたい場合. +gtt_ekn3 による新しいアルゴリズムによる path の表示. +@example +A=gtt_ekn3.marginaltoAlpha_list([[10,20],[15,15]])$ +[2666] gtt_ekn3.contiguity_mat_list_3(A,1,1 | xrule=[[x_1_1,1/2]])$ +[t,[[ (-t-43/2)/(t-2) (-15/2)/(t-2) ] +[ 1/2 -1/2 ],-9]] +@end example + 例. 0 が戻れば g_mat_fac_plain と指定した計算方法の結果が一致したことがわかる. option を書かないと g_mat_fac_int との比較となる. @example @@ -1120,6 +1143,99 @@ ChangeLog 関連ファイルは gtt_ekn/g_mat_fac.rr gtt_ekn/childprocess.rr +@end itemize + +@node binary splitting,,, 2元分割表HGMの関数 +@chapter binary splitting + +@menu +* gtt_ekn3.init_dm_bsplit:: +* gtt_ekn3.setup_dm_bsplit:: +* gtt_ekn3.init_bsplit:: +@end menu + +@node matrix factorial,,, binary splitting +@section matrix factorial + +@comment ********************************************************** +@comment --- ◯◯◯◯ の説明 +@comment --- 個々の関数の説明の開始 --- +@comment --- section 名を正確に --- +@node gtt_ekn3.init_bsplit,,, +@node gtt_ekn3.init_dm_bsplit,,, +@node gtt_ekn3.setup_dm_bsplit,,, +@subsection @code{gtt_ekn3.init_bsplit, gtt_ekn3.init_dm_bsplit, gtt_ekn3.setup_dm_bsplit} +@comment --- 索引用キーワード +@findex gtt_ekn3.init_dm_bsplit matrix factorial +@findex gtt_ekn3.setup_dm_bsplit matrix factorial +@findex gtt_ekn3.init_bsplit matrix factorial + +@table @t +@item gtt_ekn3.init_bsplit(|minsize=16,levelmax=1); +:: binary split の実行のためのパラメータを設定する. +@item gtt_ekn3.init_dm_bsplit(|bsplit_x=0, bsplit_reduce=0) +:: binary split の分散実行のためのパラメータを設定する. +@item gtt_ekn3.setup_dm_bsplit(C) +:: binary split の分散実行のために C 個のプロセスを立ち上げる. +@end table + +@comment --- 引数の簡単な説明 --- 以下まだ書いてない. +@table @var +@item C はlevelmax-1 に設定する. 特に levalmax=1 のときは分散計算を行わない. +@item bsplit_x=1 のとき, debug 用に各プロセスを xterm で表示. +@end table + +@comment --- ここで関数の詳しい説明 --- +@comment --- @itemize〜@end itemize は箇条書き --- +@comment --- @bullet は黒点付き --- +@itemize @bullet +@item expectation などの関数に bs=1 オプションを与えると matrix factorial を binary +splitting method で計算する. +@end itemize + +@comment --- @example〜@end example は実行例の表示 --- +例: bs=1 と無い場合の比較. +@example +[4618] cputime(1)$ +[4619] gtt_ekn3.expectation(Marginal=[[1950,2550,5295],[1350,1785,6660]], + P=[[17/100,1,10],[7/50,1,33/10],[1,1,1]]|bs=1)$ +4.912sec(4.914sec) +[4621] V2=gtt_ekn3.expectation(Marginal=[[1950,2550,5295],[1350,1785,6660]], + P=[[17/100,1,10],[7/50,1,33/10],[1,1,1]])$ +6.752sec(6.756sec) +@end example + + +@comment --- @example〜@end example は実行例の表示 --- +例: 分散計算する場合. +分散計算はかえって遅くなる場合が多いので注意. +下記の例での bsplit_x=1 option は +debug windows を開くのでさらに遅くなる. +gtt_ekn3.test_bs_dist(); でもテストできる. +@example +[3669] C=4$ gtt_ekn3.init_bsplit(|minsize=16,levelmax=C+1)$ gtt_ekn3.init_dm_bsplit(|bsplit_x=1)$ +[3670] [3671] [3672] gtt_ekn3.setup_dm_bsplit(C); +[0,0] +[3673] gtt_ekn3.assert2(10|bs=1)$ +@end example + +@comment --- 参照(リンク)を書く --- +@table @t +@item 参照 +@ref{gtt_ekn3.gmvector} +@ref{gtt_ekn3.expectation} +@ref{gtt_ekn3.assert1} +@ref{gtt_ekn3.assert2} +@end table + +@comment --- ChangeLog を書く. ソースコードの位置. 変更日時 など CVSサーバを見るため +@noindent +ChangeLog +@itemize @bullet +@item + 関連ファイルは + gtt_ekn3/mfac_bs.rr + gtt_ekn3/dm_bsplit.rr @end itemize