version 1.11, 2019/02/15 05:27:38 |
version 1.14, 2019/03/19 07:36:21 |
|
|
%% $OpenXM: OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi,v 1.10 2019/02/14 05:46:51 takayama Exp $ |
%% $OpenXM: OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi,v 1.13 2019/03/19 03:07:51 takayama Exp $ |
%% xetex gtt_ekn.texi (.texi までつける. ) |
%% xetex gtt_ekn-ja.texi (.texi までつける. ) |
%% 以下コメントは @comment で始める. \input texinfo 以降は普通の tex 命令は使えない. |
%% 以下コメントは @comment で始める. \input texinfo 以降は普通の tex 命令は使えない. |
\input texinfo-ja |
\input texinfo-ja |
@iftex |
@iftex |
|
|
@title 2元分割表HGM関数 |
@title 2元分割表HGM関数 |
@subtitle Risa/Asir 2元分割表HGM関数説明書 |
@subtitle Risa/Asir 2元分割表HGM関数説明書 |
@subtitle 1.2 版 |
@subtitle 1.2 版 |
@subtitle 2019 年 2 月 14 日 |
@subtitle 2019 年 3 月 19 日 |
|
|
@author by Y.Goto, Y.Tachibana, N.Takayama |
@author by Y.Goto, Y.Tachibana, N.Takayama |
@page |
@page |
Line 80 ChangeLog の項目は www.openxm.org の cvsweb で |
|
Line 80 ChangeLog の項目は www.openxm.org の cvsweb で |
|
ソースコードを読む時の助けになる情報が書かれている. |
ソースコードを読む時の助けになる情報が書かれている. |
このパッケージは下記のようにロードする. |
このパッケージは下記のようにロードする. |
@example |
@example |
load("gtt_ekn.rr"); |
load("gtt_ekn3.rr"); |
@end example |
@end example |
|
gtt_ekn3.rr は gtt_ekn.rr を置き換える大きく改良されたパッケージである. |
|
以下のモジュール名 gtt_ekn はすべて gtt_ekn3 と読み替えてほしい. |
@noindent |
@noindent |
最新版の asir-contrib package を取得するには, 下記のように更新関数を呼び出す. |
最新版の asir-contrib package を取得するには, 下記のように更新関数を呼び出す. |
@example |
@example |
Line 129 gtt_ekn/test-t1.rr |
|
Line 131 gtt_ekn/test-t1.rr |
|
* gtt_ekn.cmle:: |
* gtt_ekn.cmle:: |
* gtt_ekn.set_debug_level:: |
* gtt_ekn.set_debug_level:: |
* gtt_ekn.show_path:: |
* gtt_ekn.show_path:: |
|
* gtt_ekn.get_svalue:: |
* gtt_ekn.assert1:: |
* gtt_ekn.assert1:: |
* gtt_ekn.assert2:: |
* gtt_ekn.assert2:: |
* gtt_ekn.prob2:: |
* gtt_ekn.prob2:: |
|
|
@comment --- 個々の関数の説明の開始 --- |
@comment --- 個々の関数の説明の開始 --- |
@comment --- section 名を正確に --- |
@comment --- section 名を正確に --- |
@node gtt_ekn.upAlpha,,, 超幾何関数E(k,n) |
@node gtt_ekn.upAlpha,,, 超幾何関数E(k,n) |
@subsection @code{gtt_ekn.upAlpha} |
@node gtt_ekn.downAlpha,,, 超幾何関数E(k,n) |
|
@subsection @code{gtt_ekn.upAlpha}, @code{gtt_ekn.downAlpha} |
@comment --- 索引用キーワード |
@comment --- 索引用キーワード |
@findex gtt_ekn.upAlpha |
@findex gtt_ekn.upAlpha |
|
@findex gtt_ekn.downAlpha |
|
|
@table @t |
@table @t |
@item gtt_ekn.upAlpha(@var{i},@var{k},@var{n}) |
@item gtt_ekn.upAlpha(@var{i},@var{k},@var{n}) |
|
@item gtt_ekn.downAlpha(@var{i},@var{k},@var{n}) |
:: |
:: |
@end table |
@end table |
|
|
@comment --- 引数の簡単な説明 --- 以下まだ書いてない. |
@comment --- 引数の簡単な説明 --- 以下まだ書いてない. |
@table @var |
@table @var |
@item i a_i を a_i+1 と変化させる contiguity relation. |
@item i a_i を a_i+1 (a_i を a_i-1) と変化させる contiguity relation. |
@item k E(k+1,n+k+2)型の超幾何関数の k. 分割表では (k+1)×(n+1). |
@item k E(k+1,n+k+2)型の超幾何関数の k. 分割表では (k+1)×(n+1). |
@item n E(k+1,n+k+2)型の超幾何関数の n. 分割表では (k+1)×(n+1). |
@item n E(k+1,n+k+2)型の超幾何関数の n. 分割表では (k+1)×(n+1). |
@item return contiguity relation の pfaffian_basis についての行列表現を戻す. [GM2016] の Cor 6.3. |
@item return contiguity relation の pfaffian_basis についての行列表現を戻す. [GM2016] の Cor 6.3. |
|
|
@item a_i と分割表の周辺和を見るには, 関数 marginaltoAlpha([行和,列和]) を用いる. |
@item a_i と分割表の周辺和を見るには, 関数 marginaltoAlpha([行和,列和]) を用いる. |
@item |
@item |
pfaffian_basis は [GM2016] の4章のベクトル F に対応する偏微分を戻す. |
pfaffian_basis は [GM2016] の4章のベクトル F に対応する偏微分を戻す. |
|
@item optional 引数 arule, xrule で a_i や x_i_j を数にしたものをより効率的に求めることができる. 変化をうけるパラメータを数にしてしまっても特にエラー表示はしない. a_0 で和の条件を調整しているので注意(Todo, double check). |
@end itemize |
@end itemize |
|
|
@comment --- @example〜@end example は実行例の表示 --- |
@comment --- @example〜@end example は実行例の表示 --- |
|
|
[ f(x_1_1,x_1_2) ] |
[ f(x_1_1,x_1_2) ] |
[ (f{1,0}(x_1_1,x_1_2)*x_1_1)/(a_2) ] |
[ (f{1,0}(x_1_1,x_1_2)*x_1_1)/(a_2) ] |
[ (f{0,1}(x_1_1,x_1_2)*x_1_2)/(a_3) ] |
[ (f{0,1}(x_1_1,x_1_2)*x_1_2)/(a_3) ] |
|
|
|
[2235] RuleA=[[a_2,1/3],[a_3,1/2]]$ RuleX=[[x_1_1,1/5]]$ |
|
base_replace(gtt_ekn.upAlpha(1,1,1),append(RuleA,RuleX)) |
|
-gtt_ekn.upAlpha(1,1,1 | arule=RuleA, xrule=RuleX); |
|
|
|
[ 0 0 ] |
|
[ 0 0 ] |
|
|
@end example |
@end example |
|
|
|
|
|
|
@comment --- section 名を正確に --- |
@comment --- section 名を正確に --- |
@node gtt_ekn.set_debug_level,,, 超幾何関数E(k,n) |
@node gtt_ekn.set_debug_level,,, 超幾何関数E(k,n) |
@node gtt_ekn.show_path,,, 超幾何関数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) |
@node gtt_ekn.assert1,,, 超幾何関数E(k,n) |
@node gtt_ekn.assert2,,, 超幾何関数E(k,n) |
@node gtt_ekn.assert2,,, 超幾何関数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.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.prob1} |
@comment --- 索引用キーワード |
@comment --- 索引用キーワード |
@findex gtt_ekn.set_debug_level |
@findex gtt_ekn.set_debug_level |
@findex gtt_ekn.show_path |
@findex gtt_ekn.show_path |
|
@findex gtt_ekn.get_svalue |
@findex gtt_ekn.assert1 |
@findex gtt_ekn.assert1 |
@findex gtt_ekn.assert2 |
@findex gtt_ekn.assert2 |
@findex gtt_ekn.prob1 |
@findex gtt_ekn.prob1 |
|
|
@table @t |
@table @t |
@item gtt_ekn.set_debug_level(@var{m}) debug メッセージのレベルを設定. |
@item gtt_ekn.set_debug_level(@var{m}) debug メッセージのレベルを設定. |
@item gtt_ekn.show_path() どのように contiguity を適用したかの情報. |
@item gtt_ekn.show_path() どのように contiguity を適用したかの情報. |
|
@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.prob1(@var{R1},@var{R2},@var{Size}) R1 x R2 分割表用のテストデータを作る. |
@item gtt_ekn.prob1(@var{R1},@var{R2},@var{Size}) R1 x R2 分割表用のテストデータを作る. |
|
|
@item (@var{m} & 0x2) == 0x2 の時 g_mat_fac_test への引数を tmp-input-数.ab として保存. |
@item (@var{m} & 0x2) == 0x2 の時 g_mat_fac_test への引数を tmp-input-数.ab として保存. |
@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]} の値. |
@end itemize |
@end itemize |
|
|
@comment --- @example〜@end example は実行例の表示 --- |
@comment --- @example〜@end example は実行例の表示 --- |
|
|
関連ファイルは |
関連ファイルは |
gtt_ekn/g_mat_fac.rr |
gtt_ekn/g_mat_fac.rr |
gtt_ekn/childprocess.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 C はlevelmax-1 に設定する. 特に levalmax=1 のときは分散計算を行わない. |
|
@item bsplit_x bsplit_x=1 のとき, 各プロセスを 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 は実行例の表示 --- |
|
例: 分散計算する場合. debug 用の xterm も開く. |
|
@example |
|
[3669] C=3$ 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 |
@end itemize |
|
|
|
|