=================================================================== RCS file: /home/cvs/OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi,v retrieving revision 1.2 retrieving revision 1.3 diff -u -p -r1.2 -r1.3 --- OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi 2016/03/26 05:25:35 1.2 +++ OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi 2016/03/28 23:14:54 1.3 @@ -1,6 +1,6 @@ -%% $OpenXM: OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi,v 1.1 2016/03/21 00:16:10 takayama Exp $ -%% ptex gtt_ekn.texi (.texi $B$^$G$D$1$k(B. platex $B$G$J$/(B ptex) -%% $B0J2<%3%a%s%H$O(B @comment $B$G;O$a$k(B. \input texinfo $B0J9_$OIaDL$N(B tex $BL?Na$O;H$($J$$(B. +%% $OpenXM: OpenXM/src/asir-contrib/packages/doc/gtt_ekn/gtt_ekn-ja.texi,v 1.2 2016/03/26 05:25:35 takayama Exp $ +%% ptex -kanji euc gtt_ekn.texi (.texi までつける. platex でなく ptex) +%% 以下コメントは @comment で始める. \input texinfo 以降は普通の tex 命令は使えない. \input texinfo @iftex @catcode`@#=6 @@ -11,18 +11,18 @@ @overfullrule=0pt @c -*-texinfo-*- @comment %**start of header -@comment --- $B$*$^$8$J$$=*$j(B --- +@comment --- おまじない終り --- -@comment --- GNU info $B%U%!%$%k$NL>A0(B --- +@comment --- GNU info ファイルの名前 --- @setfilename xyzman -@comment --- $B%?%$%H%k(B --- -@settitle 2$B85J,3dI=(BHGM +@comment --- タイトル --- +@settitle 2元分割表HGM @comment %**end of header @comment %@setchapternewpage odd -@comment --- $B$*$^$8$J$$(B --- +@comment --- おまじない --- @ifinfo @macro fref{name} @ref{\name\,,@code{\name\}} @@ -34,13 +34,13 @@ @end iftex @titlepage -@comment --- $B$*$^$8$J$$=*$j(B --- +@comment --- おまじない終り --- -@comment --- $B%?%$%H%k(B, $B%P!<%8%g%s(B, $BCx(B, $BCx:n8"I=<((B --- -@title 2$B85J,3dI=(BHGM$B4X?t(B -@subtitle Risa/Asir 2$B85J,3dI=(BHGM$B4X?t@bL@=q(B -@subtitle 1.0 $BHG(B -@subtitle 2016 $BG/(B 3 $B7n(B 22 $BF|(B +@comment --- タイトル, バージョン, 著者名, 著作権表示 --- +@title 2元分割表HGM関数 +@subtitle Risa/Asir 2元分割表HGM関数説明書 +@subtitle 1.0 版 +@subtitle 2016 年 3 月 22 日 @author by Y.Goto, Y.Tachibana, N.Takayama @page @@ -49,59 +49,59 @@ Copyright @copyright{} Risa/Asir committers 2004--2010. All rights reserved. @end titlepage -@comment --- $B$*$^$8$J$$(B --- +@comment --- おまじない --- @synindex vr fn -@comment --- $B$*$^$8$J$$=*$j(B --- +@comment --- おまじない終り --- -@comment --- @node $B$O(B GNU info, HTML $BMQ(B --- -@comment --- @node $B$N0z?t$O(B node-name, next, previous, up --- +@comment --- @node は GNU info, HTML 用 --- +@comment --- @node の引数は node-name, next, previous, up --- @node Top,, (dir), (dir) -@comment --- @menu $B$O(B GNU info, HTML $BMQ(B --- -@comment --- chapter $BL>$r@53N$KJB$Y$k(B --- -@comment --- $B$3$NJ8=q$G$O(B chapter XYZ, Chapter Index $B$,$"$k(B. -@comment --- Chapter XYZ $B$K$O(B section XYZ$B$K$D$$$F(B, section XYZ$B$K4X$9$k4X?t$,$"$k(B. +@comment --- @menu は GNU info, HTML 用 --- +@comment --- chapter 名を正確に並べる --- +@comment --- この文書では chapter XYZ, Chapter Index がある. +@comment --- Chapter XYZ には section XYZについて, section XYZに関する関数がある. @menu -* 2$B85J,3dI=(BHGM$B$N4X?t@bL@=q$K$D$$$F(B:: -* 2$B85J,3dI=(BHGM$B$N4X?t(B:: +* 2元分割表HGMの関数説明書について:: +* 2元分割表HGMの関数:: * Index:: @end menu -@comment --- chapter $B$N3+;O(B --- -@comment --- $B?F(B chapter $BL>$r@53N$K(B. $B?F$,$J$$>l9g$O(B Top --- -@node 2$B85J,3dI=(BHGM$B$N4X?t@bL@=q$K$D$$$F(B,,, Top -@chapter 2$B85J,3dI=(BHGM$B$N4X?t@bL@=q$K$D$$$F(B +@comment --- chapter の開始 --- +@comment --- 親 chapter 名を正確に. 親がない場合は Top --- +@node 2元分割表HGMの関数説明書について,,, Top +@chapter 2元分割表HGMの関数説明書について -$B$3$N@bL@=q$G$O(B -HGM(holonomic gradient method) $B$rMQ$$$?(B2$B85J,3dI=$N4X?t$K$D$$$F@bL@$9$k(B. -ChangeLog $B$N9`L\$O(B www.openxm.org $B$N(B cvsweb $B$G(B -$B%=!<%9%3!<%I$rFI$`;~$N=u$1$K$J$k>pJs$,=q$+$l$F$$$k(B. +この説明書では +HGM(holonomic gradient method) を用いた2元分割表の関数について説明する. +ChangeLog の項目は www.openxm.org の cvsweb で +ソースコードを読む時の助けになる情報が書かれている. -$BK\J8Cf$G0zMQ$7$F$$$kJ88%$rNs5s$9$k(B. +本文中で引用している文献を列挙する. @itemize @bullet @item [GM2016] Y.Goto, K.Matsumoto, Pfaffian equations and contiguity relations of the hypergeometric function of type (k+1,k+n+2) and their applications, arxiv:1602.01637 (version 1) @item [T2016] -Y.Tachibana, $B:9J,%[%m%N%_%C%/8{G[K!$N%b%8%e%i!<%a%=%C%I$K$h$k7W;;$N9bB.2=(B, -2016, $B?@8MBg3X=$;NO@J8(B. +Y.Tachibana, 差分ホロノミック勾配法のモジュラーメソッドによる計算の高速化, +2016, 神戸大学修士論文. @item [GTT2016] -Y.Goto, Y.Tachibana, N.Takayama, 2$B85J,3dI=$KBP$9$k:9J,%[%m%N%_%C%/8{G[K!$N$r@53N$K(B --- -@node gtt_ekn.gmvector,,, $BD64v2?4X?t(BE(k,n) +@comment --- ◯◯◯◯ の説明 +@comment --- 個々の関数の説明の開始 --- +@comment --- section 名を正確に --- +@node gtt_ekn.gmvector,,, 超幾何関数E(k,n) @subsection @code{gtt_ekn.gmvector} -@comment --- $B:w0zMQ%-!<%o!<%I(B +@comment --- 索引用キーワード @findex gtt_ekn.gmvector @table @t @item gtt_ekn.gmvector(@var{beta},@var{p}) -:: $B<~JUOB(B @var{beta}, $B%;%k$N3NN((B @var{p} $B$NFs85J,3dI=$KIU?o$9$kD64v2?4X?t(B -E(k,n) $B$NCM$*$h$S$=$NHyJ,$NCM$rLa$9(B. +:: 周辺和 @var{beta}, セルの確率 @var{p} の二元分割表に付随する超幾何関数 +E(k,n) の値およびその微分の値を戻す. @item gtt_ekn.ekn_cBasis_2(@var{beta},@var{p}) -$B$NJLL>$G$"$k(B. +の別名である. @end table -@comment --- $B0z?t$N4JC1$J@bL@(B --- $B0J2<$^$@=q$$$F$J$$(B. +@comment --- 引数の簡単な説明 --- 以下まだ書いてない. @table @var @item return -$B%Y%/%H%k(B, $BD64v2?4X?t$NCM$H$=$NHyJ,(B. $B>\$7$/$O2<5-(B. +ベクトル, 超幾何関数の値とその微分. 詳しくは下記. @item beta -$B9TOB(B, $BNsOB$N%j%9%H(B. $B@.J,$O$9$Y$F@5$G$"$k$3$H(B. +行和, 列和のリスト. 成分はすべて正であること. @item p -$BFs85J,3dI=$N%;%k$N3NN($N%j%9%H(B +二元分割表のセルの確率のリスト @end table -@comment --- $B$3$3$G4X?t$N>\$7$$@bL@(B --- -@comment --- @itemize$B!A(B@end itemize $B$O2U>r=q$-(B --- -@comment --- @bullet $B$O9uE@IU$-(B --- +@comment --- ここで関数の詳しい説明 --- +@comment --- @itemize〜@end itemize は箇条書き --- +@comment --- @bullet は黒点付き --- @itemize @bullet @item -gmvector $B$O(B Gauss-Manin vector $B$NN,$G$"$k(B [GM2016]. +gmvector は Gauss-Manin vector の略である [GM2016]. @item -gmvector $B$NLa$jCM$O(B -[GM2016] $B$N(B 6$B>O(B p.23 $B$N%Y%/%H%k(B S$B$G$"$k(B. -$B$3$l$O(B -[GM2016] $B$N#4>O$GDj5A$5$l$F$$$k%Y%/%H%k(B F $B$NDj?tG\$G$"$j(B, -$B$=$NDj?t$O(B -$BBh0l@.J,$,(B [GM2016] $B$N#6>O$GDj5A$5$l$F$$$k5i?t(B S $B$NCM$HEy$7$/(B -$B$J$k$h$&$K7h$a$i$l$F$$$k(B. +gmvector の戻り値は +[GM2016] の 6章 p.23 のベクトル Sである. +これは +[GM2016] の4章で定義されているベクトル F の定数倍であり, +その定数は +第一成分が [GM2016] の6章で定義されている級数 S の値と等しく +なるように決められている. @item - r1 x r2 $BJ,3dI=$r9M$($k(B. - m+1=r1, n+1=r2 $B$H$*$/(B. - $B@55,2=Dj?t(B Z $B$OJ,3dI=(B u $B$r(B (m+1) $B!_(B (n+1) $B9TNs$H$9$k$H$-(B p^u/u! $B$NOB$G$"$k(B. - $B$3$3$GOB$O9TOBNsOB$,(B @var{beta} $B$G$"$k$h$&$J(B u $BA4BN$G$H$k(B + r1 x r2 分割表を考える. + m+1=r1, n+1=r2 とおく. + 正規化定数 Z は分割表 u を (m+1) × (n+1) 行列とするとき p^u/u! の和である. + ここで和は行和列和が @var{beta} であるような u 全体でとる [TKT2015], [GM2016]. - S $B$O$3$NB?9`<0(B Z $B$N(B p $B$r(B + S はこの多項式 Z の p を @verbatim [[1,y11,...,y1n], [1,y21,...,y2n],..., [1,ym1, ...,ymn], [1,1, ..., 1]] @end verbatim -$B!!(B(1 $B$,(B L $B;z7?$KJB$V(B), -$B$H@55,2=$7$?5i?t$G$"$k(B. + (1 が L 字型に並ぶ), +と正規化した級数である. @item -2x(n+1)$BJ,3dI=$G(B, gmvector $B$NLa$jCM$r(B Lauricella F_D $B$G=q$/$3$H$,(B -$B0J2<$N$h$&$K$G$-$k(B -(b[2][1]-b[1][1] >= 0 $B$N>l9g(B). -$B$3$3$G(B b[1][1], b[1][2] $B$O(B, $B$=$l$>$l(B 1 $B9TL\$N9TOB(B, 2 $B9TL\$N9TOB(B, -b[2][i] $B$O(B i $BNsL\$NNsOB$G$"$k(B. +2x(n+1)分割表で, gmvector の戻り値を Lauricella F_D で書くことが +以下のようにできる +(b[2][1]-b[1][1] >= 0 の場合). +ここで b[1][1], b[1][2] は, それぞれ 1 行目の行和, 2 行目の行和, +b[2][i] は i 列目の列和である. @comment ekn/Talks/2015-12-3-goto.tex @verbatim S=F_D(-b[1,1], [-b[2,2],...,-b[2,n+1]], b[2,1]-b[1,1]+1 ; y)/C, @end verbatim C=b[1,1]! b[2,2]! ... b[2][n+1]! (b[2,1]-b[1,1])! -$B$H$*$/(B. -1/C $B$O(B L $B;z7?$NJ,3dI=(B +とおく. +1/C は L 字型の分割表 @verbatim [[b[1,1], 0, ..., 0 ], [b[2,1]-b[1,1],b[2,2], ..., b[2,n+1]]] @end verbatim -$B$KBP1~(B. -gmvector $B$O(B +に対応. +gmvector は @verbatim [S,(y11/a2) d_11 S,(y12/a3) d_12 S, ..., (y1n/a_(n+1)) d_1n S] @end verbatim -$B$G$"$k(B. -$B$3$3$G(B d_ij $B$O(B yij $B$K$D$$$F$NHyJ,(B, +である. +ここで d_ij は yij についての微分, @verbatim [a0, a1, ... ,a_(n+2)] = [-b[1,2],-b[1,1],b[2,2], ..., b[2,n+1],b[2,1]] @end verbatim -$B$G$"$k(B. +である. @item -$B<~JUOB(B @var{beta}$B$N;~$N@55,2=Dj?t$N%;%k3NN((B @var{p} $B$KBP$9$kCM$O(B $BB?9`<0$KB`2=$7$?(B E(k,n) $B$NCM$GI=8=$G$-$k(B. $BJ88%(B [TKT2015], [GM2016] $B;2>H(B. +周辺和 @var{beta}の時の正規化定数のセル確率 @var{p} に対する値は 多項式に退化した E(k,n) の値で表現できる. 文献 [TKT2015], [GM2016] 参照. @item -option crt=1 (crt = Chinese remainder theorem) $B$rM?$($k$H(B, $BJ,;67W;;$r$*$3$J$&(B +option crt=1 (crt = Chinese remainder theorem) を与えると, 分散計算をおこなう [T2016]. -$BJ,;67W;;MQ$N3Fl9g$N(B gmvector $B$NCM$G$"$k(B. +@comment --- @example〜@end example は実行例の表示 --- +例: 次は2 x 2 分割表で行和が [5,1], 列和が [3,3], 各セルの確率が +[[1/2,1/3],[1/7,1/5]] の場合の gmvector の値である. @example [3000] load("gtt_ekn.rr"); [3001] ekn_gtt.gmvector([[5,1],[3,3]],[[1/2,1/3],[1/7,1/5]]) @@ -218,21 +218,21 @@ gtt_ekn.setup $B$G9T$J$&(B. [200/9261] @end example -$B;29M(B: 2 x m $BJ,3dI=(B(Lauricella FD)$B$K$D$$$F$O%Q%C%1!<%8(B tk_fd $B$G$b2<5-$N$h$&$KF1Ey$J(B -$B7W;;$,$G$-$k(B. -$B-MhE*$K$OJQ99$5$l$k(B.) +参考: 一般の A 分布の正規化定数についての Hessian の計算は実験的 package ot_hessian_ahg.rr +で実装のテストがされている. (これはまだ未完成のテスト版なので出力形式等も将来的には変更される.) @example import("ot_hgm_ahg.rr"); import("ot_hessian_ahg.rr"); @@ -271,80 +271,80 @@ def htest4() @{ [(b1^2+(-2*b0-1)*b1+b0^2+b0)/(x0^2),[]],[(x6)/(x0),[6,0]],[(x4)/(x0),[4,0]]] @end example -@comment --- $B;2>H(B($B%j%s%/(B)$B$r=q$/(B --- +@comment --- 参照(リンク)を書く --- @table @t -@item $B;2>H(B +@item 参照 @ref{gtt_ekn.setup} @ref{gtt_ekn.pfaffian_basis} @end table -@comment --- ChangeLog $B$r=q$/(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B +@comment --- ChangeLog を書く. ソースコードの位置. 変更日時 など CVSサーバを見るため @noindent ChangeLog @itemize @bullet @item - $B$3$N4X?t$O(B -[GM2016] $B$N%"%k%4%j%:%`$*$h$S(B -[T2016] $B$K$h$k(B modular method $B$rMQ$$$?9bB.2=$rr7oIU$-3NN($N@55,2=Dj?t(B Z -$B$*$h$S$=$NHyJ,$NCM$rLa$9(B. +:: 周辺和 @var{beta}, セルの確率 @var{p} の二元分割表の条件付き確率の正規化定数 Z +およびその微分の値を戻す. @end table -@comment --- $B0z?t$N4JC1$J@bL@(B --- $B0J2<$^$@=q$$$F$J$$(B. +@comment --- 引数の簡単な説明 --- 以下まだ書いてない. @table @var @item return -$B%Y%/%H%k(B [Z,[[d_11 Z, d_12 Z, ...], ..., [d_m1 Z, d_m2 Z, ...., d_mn Z]]] +ベクトル [Z,[[d_11 Z, d_12 Z, ...], ..., [d_m1 Z, d_m2 Z, ...., d_mn Z]]] @item beta -$B9TOB(B, $BNsOB$N%j%9%H(B. $B@.J,$O$9$Y$F@5$G$"$k$3$H(B. +行和, 列和のリスト. 成分はすべて正であること. @item p -$BFs85J,3dI=$N%;%k$N3NN($N%j%9%H(B +二元分割表のセルの確率のリスト @end table -@comment --- $B$3$3$G4X?t$N>\$7$$@bL@(B --- -@comment --- @itemize$B!A(B@end itemize $B$O2U>r=q$-(B --- -@comment --- @bullet $B$O9uE@IU$-(B --- +@comment --- ここで関数の詳しい説明 --- +@comment --- @itemize〜@end itemize は箇条書き --- +@comment --- @bullet は黒点付き --- @itemize @bullet @item - r1 x r2 $BJ,3dI=$r9M$($k(B. - m=r1, n=r2 $B$H$*$/(B. - $B@55,2=Dj?t(B Z $B$OJ,3dI=(B u $B$r(B m $B!_(B n $B9TNs$H$9$k$H$-(B p^u/u! $B$NOB$G$"$k(B. - $B$3$3$GOB$O9TOBNsOB$,(B @var{beta} $B$G$"$k$h$&$J(B u $BA4BN$G$H$k(B + r1 x r2 分割表を考える. + m=r1, n=r2 とおく. + 正規化定数 Z は分割表 u を m × n 行列とするとき p^u/u! の和である. + ここで和は行和列和が @var{beta} であるような u 全体でとる [TKT2015], [GM2016]. - p^u $B$O(B p_ij^u_ij $B$N@Q(B, u! $B$O(B u_ij! $B$N@Q$G$"$k(B. - d_ij Z $B$G(B Z $B$NJQ?t(B p_ij $B$K$D$$$F$NJPHyJ,$rI=$9(B. + p^u は p_ij^u_ij の積, u! は u_ij! の積である. + d_ij Z で Z の変数 p_ij についての偏微分を表す. @item -nc $B$O(B gmvector $B$NCM$r85$K(B, [GM2016] $B$N(B Prop - 7.1 $B$K4p$E$$$F(B Z $B$NCM$r7W;;$9$k(B. +nc は gmvector の値を元に, [GM2016] の Prop + 7.1 に基づいて Z の値を計算する. @item -option crt=1 (crt = Chinese remainder theorem) $B$rM?$($k$H(B, $BJ,;67W;;$r$*$3$J$&(B. -$BJ,;67W;;MQ$N3FH(B($B%j%s%/(B)$B$r=q$/(B --- +@comment --- 参照(リンク)を書く --- @table @t -@item $B;2>H(B +@item 参照 @ref{gtt_ekn.setup} @ref{gtt_ekn.lognc} @end table -@comment --- ChangeLog $B$r=q$/(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B +@comment --- ChangeLog を書く. ソースコードの位置. 変更日時 など CVSサーバを見るため @noindent ChangeLog @itemize @bullet @item - $BJQ99$rr7oIU$-3NN($N@55,2=Dj?t(B Z -$B$N(B log $B$N6a;wCM$*$h$S$=$NHyJ,$N6a;wCM$rLa$9(B. +:: 周辺和 @var{beta}, セルの確率 @var{p} の二元分割表の条件付き確率の正規化定数 Z +の log の近似値およびその微分の近似値を戻す. @end table -@comment --- $B0z?t$N4JC1$J@bL@(B --- $B0J2<$^$@=q$$$F$J$$(B. +@comment --- 引数の簡単な説明 --- 以下まだ書いてない. @table @var @item return -$B%Y%/%H%k(B [log(Z), [[d_11 log(Z), d_12 log(Z), ...], [d_21 log(Z),...], ... ] +ベクトル [log(Z), [[d_11 log(Z), d_12 log(Z), ...], [d_21 log(Z),...], ... ] @item beta -$B9TOB(B, $BNsOB$N%j%9%H(B. $B@.J,$O$9$Y$F@5$G$"$k$3$H(B. +行和, 列和のリスト. 成分はすべて正であること. @item p -$BFs85J,3dI=$N%;%k$N3NN($N%j%9%H(B +二元分割表のセルの確率のリスト @end table -@comment --- $B$3$3$G4X?t$N>\$7$$@bL@(B --- -@comment --- @itemize$B!A(B@end itemize $B$O2U>r=q$-(B --- -@comment --- @bullet $B$O9uE@IU$-(B --- +@comment --- ここで関数の詳しい説明 --- +@comment --- @itemize〜@end itemize は箇条書き --- +@comment --- @bullet は黒点付き --- @itemize @bullet @item -$B>r7oIU$-:GL`?dDj$KMxMQ$9$k(B [TKT2015]. -@item option crt=1 (crt = Chinese remainder theorem) $B$rM?$($k$H(B, $BJ,;67W;;$r$*$3$J$&(B. -$BJ,;67W;;MQ$N3FH(B($B%j%s%/(B)$B$r=q$/(B --- +@comment --- 参照(リンク)を書く --- @table @t -@item $B;2>H(B +@item 参照 @ref{gtt_ekn.setup} @ref{gtt_ekn.nc} @end table -@comment --- ChangeLog $B$r=q$/(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B +@comment --- ChangeLog を書く. ソースコードの位置. 変更日時 など CVSサーバを見るため @noindent ChangeLog @itemize @bullet @item - $BJQ99$r\$7$$@bL@(B --- -@comment --- @itemize$B!A(B@end itemize $B$O2U>r=q$-(B --- -@comment --- @bullet $B$O9uE@IU$-(B --- +@comment --- ここで関数の詳しい説明 --- +@comment --- @itemize〜@end itemize は箇条書き --- +@comment --- @bullet は黒点付き --- @itemize @bullet @item -[GM2016] $B$N(B Algorithm 7.8 $B$Ne$HF1$8LdBj(B. +// 2 x 3 分割表の期待値. 上と同じ問題. @end example -3 x 3 $BJ,3dI=(B. $B9=B$E*(B0$B$,0l$D(B. +3 x 3 分割表. 構造的0が一つ. @example /* - dojo, p.221 $B$N%G!<%?(B. $B@.@S(B3$B0J2<$N@8EL$O=8$a$F$R$H$D$K(B. + dojo, p.221 のデータ. 成績3以下の生徒は集めてひとつに. 2 1 1 8 3 3 0 2 6 row sum: 4,14,8 column sum: 10,6,10 - 0 $B$r0l$D4^$`$N$G(B, (3,6) $B7?$N(B A $B$+$i(B 7 $BNsL\$rH4$/(B. + 0 を一つ含むので, (3,6) 型の A から 7 列目を抜く. */ A=[[0,0,0,1,1,1, 0,0], @@ -563,9 +563,9 @@ A=[[0,0,0,1,1,1, 0,0], [0,0,1,0,0,1, 0,1]]; B=[14,8,10,6,10]; hgm_ahg_expected_values_contiguity(A,B,[1,1/2,1/3,1,1/5,1/7,1,1], -$B!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(B[x1,x2,x3,x4,x5,x6,x7,x8]|geometric=1); +                [x1,x2,x3,x4,x5,x6,x7,x8]|geometric=1); -// $BEz(B. +// 答. [14449864949304/9556267369631, 10262588586540/9556267369631, 13512615942680/9556267369631, 81112808747006/9556267369631, @@ -574,10 +574,10 @@ hgm_ahg_expected_values_contiguity(A,B,[1,1/2,1/3,1,1/ 25258717886900/9556267369631,51191421070148/9556267369631] @end example -3 x 3 $BJ,3dI=(B. +3 x 3 分割表. @example /* - $B>e$N%G!<%?$G(B 0 $B$r(B 1 $B$KJQ99(B. + 上のデータで 0 を 1 に変更. 2 1 1 8 3 3 1 2 6 @@ -594,100 +594,100 @@ B=[14,9,11,6,10]; hgm_ahg_expected_values_contiguity(A,B,[1,1/2,1/3,1,1/5,1/7,1,1,1], [x1,x2,x3,x4,x5,x6,x7,x8]|geometric=1); -// $B4|BTCM(B, $BEz(B. x9 $B$r;XDj$7$F$$$J$$$N$G(B, 9$BHVL\$N4|BTCM$O=PNO$7$F$J$$(B. +// 期待値, 答. x9 を指定していないので, 9番目の期待値は出力してない. [207017568232262040/147000422096729819, 163140751505489940/147000422096729819,217843368649167296/147000422096729819, 1185482401011137878/147000422096729819, 358095302885438604/147000422096729819,514428205457640984/147000422096729819, 224504673820628091/147000422096729819,360766478189450370/147000422096729819] -// Z $B$d$=$NHyJ,$N7W;;$O(B hgm_ahg_contiguity $B4X?t$,$*$3$J$&$,(B, $B$3$l$N4J0W%$%s%?!<%U%'!<%9$O(B -// $B$^$@=q$$$F$J$$(B. +// Z やその微分の計算は hgm_ahg_contiguity 関数がおこなうが, これの簡易インターフェースは +// まだ書いてない. @end example -@comment --- $B;2>H(B($B%j%s%/(B)$B$r=q$/(B --- +@comment --- 参照(リンク)を書く --- @table @t -@item $B;2>H(B +@item 参照 @ref{gtt_ekn.setup} @ref{gtt_ekn.nc} @end table -@comment --- ChangeLog $B$r=q$/(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B +@comment --- ChangeLog を書く. ソースコードの位置. 変更日時 など CVSサーバを見るため @noindent ChangeLog @itemize @bullet @item - $BJQ99$r$r@53N$K(B --- -@node gtt_ekn.setup,,, $BD64v2?4X?t(BE(k,n) +@comment --- ◯◯◯◯ の説明 +@comment --- 個々の関数の説明の開始 --- +@comment --- section 名を正確に --- +@node gtt_ekn.setup,,, 超幾何関数E(k,n) @subsection @code{gtt_ekn.setup} -@comment --- $B:w0zMQ%-!<%o!<%I(B +@comment --- 索引用キーワード @findex gtt_ekn.setup @table @t @item gtt_ekn.setup() -:: $BJ,;67W;;MQ$N4D6-@_Dj$r$*$3$J$&(B. $B8=:_$N4D6-$rJs9p$9$k(B. +:: 分散計算用の環境設定をおこなう. 現在の環境を報告する. @end table -@comment --- $B0z?t$N4JC1$J@bL@(B --- $B0J2<$^$@=q$$$F$J$$(B. +@comment --- 引数の簡単な説明 --- 以下まだ書いてない. @table @var @item return @end table -@comment --- $B$3$3$G4X?t$N>\$7$$@bL@(B --- -@comment --- @itemize$B!A(B@end itemize $B$O2U>r=q$-(B --- -@comment --- @bullet $B$O9uE@IU$-(B --- +@comment --- ここで関数の詳しい説明 --- +@comment --- @itemize〜@end itemize は箇条書き --- +@comment --- @bullet は黒点付き --- @itemize @bullet -@item $B;HMQ$9$k%W%m%;%9$HAG?t$N8D?t(B, $B:G>.$NAG?t$rI=<($9$k(B. $B=`Hw$5$l$F$$$J$$>l9g$O$=$N;]$rI=<((B. -@item $B$3$N%Q%C%1!<%8$G$NJ,;67W;;$OJ#?t$N(Bcpu$B$rEk:\$7$?7W;;5!$Gl9g;XDj$5$l$?AG?t%j%9%H$N%U%!%$%k$rFI$_9~$`(B. nprm$B$,<+A3?t$N>l9g$5$i$K(Boption minp (minp =MINimum Prime)$B$rM?$($k$H(Bminp$B$h$jBg$-$JAG?t$r(Bnprm$B8D@8@.$9$k(B. $B$=$N:](Boption fgp ($B$^$?$O(B file_of_generated_primes)$B$rM?$($k$H@8@.$7$?AG?t%j%9%H$r%U%!%$%kL>$r(Bfgp$B$H$7$FJ]B8$9$k(B. -@item $B>e5-$N(Boption $B$r;XDj$7$J$+$C$?>l9g$H$7$F(Breport$B4X?t$r;HMQ$9$k$3$H$b$G$-$k(B. +@item 使用するプロセスと素数の個数, 最小の素数を表示する. 準備されていない場合はその旨を表示. +@item このパッケージでの分散計算は複数のcpuを搭載した計算機で実行されることを想定している. +@item option nps (または number_of_processes)を与えると指定した数だけプロセスを用意する. +@item option nprm (または number_of_primes)を与えるとnprmが文字列の場合指定された素数リストのファイルを読み込む. nprmが自然数の場合さらにoption minp (minp =MINimum Prime)を与えるとminpより大きな素数をnprm個生成する. その際option fgp (または file_of_generated_primes)を与えると生成した素数リストをファイル名をfgpとして保存する. +@item 上記のoption を指定しなかった場合次のデフォルト値が用いられる. nps=1. nprm=10. fgp=0. +@item option report=1を与えると現在の環境の報告のみを行う. setup(|report=1)の別名としてreport関数を使用することもできる. @end itemize -@comment --- @example$B!A(B@end example $B$OH(B($B%j%s%/(B)$B$r=q$/(B --- +@comment --- 参照(リンク)を書く --- @table @t -@item $B;2>H(B +@item 参照 @ref{gtt_ekn.nc} @ref{gtt_ekn.gmvector} @end table -@comment --- ChangeLog $B$r=q$/(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B +@comment --- ChangeLog を書く. ソースコードの位置. 変更日時 など CVSサーバを見るため @noindent ChangeLog @itemize @bullet @item - $BJQ99$r$r@53N$K(B --- -@node gtt_ekn.upAlpha,,, $BD64v2?4X?t(BE(k,n) +@comment --- ◯◯◯◯ の説明 +@comment --- 個々の関数の説明の開始 --- +@comment --- section 名を正確に --- +@node gtt_ekn.upAlpha,,, 超幾何関数E(k,n) @subsection @code{gtt_ekn.upAlpha} -@comment --- $B:w0zMQ%-!<%o!<%I(B +@comment --- 索引用キーワード @findex gtt_ekn.upAlpha @table @t @@ -695,72 +695,72 @@ ChangeLog :: @end table -@comment --- $B0z?t$N4JC1$J@bL@(B --- $B0J2<$^$@=q$$$F$J$$(B. +@comment --- 引数の簡単な説明 --- 以下まだ書いてない. @table @var -@item i a_i $B$r(B a_i+1 $B$HJQ2=$5$;$k(B contiguity relation. -@item k E(k+1,n+k+2)$B7?$ND64v2?4X?t$N(B k. $BJ,3dI=$G$O(B (k+1)$B!_(B(n+1). -@item n E(k+1,n+k+2)$B7?$ND64v2?4X?t$N(B n. $BJ,3dI=$G$O(B (k+1)$B!_(B(n+1). -@item return contiguity relation $B$N(B pfaffian_basis $B$K$D$$$F$N9TNsI=8=$rLa$9(B. [GM2016] $B$N(B Cor 6.3. +@item i a_i を a_i+1 と変化させる contiguity relation. +@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 return contiguity relation の pfaffian_basis についての行列表現を戻す. [GM2016] の Cor 6.3. @end table -@comment --- $B$3$3$G4X?t$N>\$7$$@bL@(B --- -@comment --- @itemize$B!A(B@end itemize $B$O2U>r=q$-(B --- -@comment --- @bullet $B$O9uE@IU$-(B --- +@comment --- ここで関数の詳しい説明 --- +@comment --- @itemize〜@end itemize は箇条書き --- +@comment --- @bullet は黒点付き --- @itemize @bullet @item - upAlpha $B$O!!(B[GM2016] $B$N(B Cor 6.3 $B$N9TNs(B U_i $B$rLa$9(B. -@item $B4XO"$9$k3F4X?t$N4J7i$J@bL@$HNc$b2C$($k(B. -@item a_i $B$r(B a_i-1 $B$HJQ2=$5$;$?$$>l9g$O4X?t(B downAlpha $B$rMQ$$$k(B. -@item a_i $B$HJ,3dI=$N<~JUOB$r8+$k$K$O(B, $B4X?t(B marginaltoAlpha([$B9TOB(B,$BNsOB(B]) $B$rMQ$$$k(B. + upAlpha は [GM2016] の Cor 6.3 の行列 U_i を戻す. +@item 関連する各関数の簡潔な説明と例も加える. +@item a_i を a_i-1 と変化させたい場合は関数 downAlpha を用いる. +@item a_i と分割表の周辺和を見るには, 関数 marginaltoAlpha([行和,列和]) を用いる. @item - pfaffian_basis $B$O(B [GM2016] $B$N#4>O$N%Y%/%H%k(B F $B$KBP1~$9$kJPHyJ,$rLa$9(B. + pfaffian_basis は [GM2016] の4章のベクトル F に対応する偏微分を戻す. @end itemize -@comment --- @example$B!A(B@end example $B$Ol9g$G$"$k(B. -[2225] $B$^$G$O=PNO$rN,$7$F$$$k(B. +@comment --- @example〜@end example は実行例の表示 --- +例: 以下の例は 2×2分割表(E(2,4)), 2×3分割表(E(2,5))の場合である. +[2225] までは出力を略している. @example [2221] gtt_ekn.marginaltoAlpha([[1,4],[2,3]]); [[a_0,-4],[a_1,-1],[a_2,3],[a_3,2]] -[2222] gtt_ekn.upAlpha(1,1,1); // E(2,4) $B$N(B a_1 $BJ}8~$N(B - // contiguity $B$rI=8=$9$k9TNs(B -[2223] gtt_ekn.upAlpha(2,1,1); // E(2,4) $B$N(B a_2 $BJ}8~(B -[2224] gtt_ekn.upAlpha(3,1,1); // E(2,4) $B$N(B a_3 $BJ}8~(B +[2222] gtt_ekn.upAlpha(1,1,1); // E(2,4) の a_1 方向の + // contiguity を表現する行列 +[2223] gtt_ekn.upAlpha(2,1,1); // E(2,4) の a_2 方向 +[2224] gtt_ekn.upAlpha(3,1,1); // E(2,4) の a_3 方向 [2225] function f(x_1_1); [2232] gtt_ekn.pfaffian_basis(f(x_1_1),1,1); [ f(x_1_1) ] [ (f{1}(x_1_1)*x_1_1)/(a_2) ] [2233] function f(x_1_1,x_1_2); f() redefined. -[2234] gtt_ekn.pfaffian_basis(f(x_1_1,x_1_2),1,2); // E(2,5), 2*3 $BJ,3dI=(B +[2234] gtt_ekn.pfaffian_basis(f(x_1_1,x_1_2),1,2); // E(2,5), 2*3 分割表 [ f(x_1_1,x_1_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) ] @end example -@comment --- $B;2>H(B($B%j%s%/(B)$B$r=q$/(B --- +@comment --- 参照(リンク)を書く --- @table @t -@item $B;2>H(B +@item 参照 @ref{gtt_ekn.nc} @ref{gtt_ekn.gmvector} @end table -@comment --- ChangeLog $B$r=q$/(B. $B%=!<%9%3!<%I$N0LCV(B. $BJQ99F|;~(B $B$J$I(B CVS$B%5!<%P$r8+$k$?$a(B +@comment --- ChangeLog を書く. ソースコードの位置. 変更日時 など CVSサーバを見るため @noindent ChangeLog @itemize @bullet @item - $B$3$N4X?t$O(B [GM2016] -$B$GM?$($i$l$?%"%k%4%j%:%`$K=>$$(B contiguity relation $B$rF3=P$9$k(B. + この関数は [GM2016] +で与えられたアルゴリズムに従い contiguity relation を導出する. @item - $BJQ99$re$HF1$8LdBj(B. +// 2 x 3 分割表の期待値. 上と同じ問題. /* - dojo, p.221. $B@.@S(B3$B0J2<$N@8EL$O=8$a$F$R$H$D$K(B. + dojo, p.221. 成績3以下の生徒は集めてひとつに. 2 1 1 8 3 3 0 2 6 row sum: 4,14,8 column sum: 10,6,10 - 0 $B$r0l$D4^$`$N$G(B, (3,6) $B7?$N(B A $B$+$i(B 7 $BNsL\$rH4$/(B. + 0 を一つ含むので, (3,6) 型の A から 7 列目を抜く. */ -// 3 x 3 $BJ,3dI=(B. $B9=B$E*(B0$B$,0l$D(B. +// 3 x 3 分割表. 構造的0が一つ. A=[[0,0,0,1,1,1, 0,0], [0,0,0,0,0,0, 1,1], @@ -860,14 +860,14 @@ A=[[0,0,0,1,1,1, 0,0], B=[14,8,10,6,10]; hgm_ahg_expected_values_contiguity(A,B,[1,1/2,1/3,1,1/5,1/7,1,1],[x1,x2,x3,x4,x5,x6,x7,x8]|geometric=1); -// $BEz(B. +// 答. [14449864949304/9556267369631,10262588586540/9556267369631,13512615942680/9556267369631, 81112808747006/9556267369631,21816297744346/9556267369631,30858636683482/9556267369631, 25258717886900/9556267369631,51191421070148/9556267369631] /* - $B>e$N%G!<%?$G(B 0 $B$r(B 1 $B$KJQ99(B. + 上のデータで 0 を 1 に変更. 2 1 1 8 3 3 1 2 6 @@ -875,7 +875,7 @@ hgm_ahg_expected_values_contiguity(A,B,[1,1/2,1/3,1,1/ row sum: 4,14,9 column sum: 11,6,10 */ -// 3 x 3 $BJ,3dI=(B. +// 3 x 3 分割表. A=[[0,0,0,1,1,1,0,0,0], [0,0,0,0,0,0,1,1,1], [1,0,0,1,0,0,1,0,0], @@ -884,16 +884,16 @@ A=[[0,0,0,1,1,1,0,0,0], B=[14,9,11,6,10]; hgm_ahg_expected_values_contiguity(A,B,[1,1/2,1/3,1,1/5,1/7,1,1,1],[x1,x2,x3,x4,x5,x6,x7,x8]|geometric=1); -// $B4|BTCM(B, $BEz(B. +// 期待値, 答. [207017568232262040/147000422096729819,163140751505489940/147000422096729819,217843368649167296/147000422096729819, 1185482401011137878/147000422096729819,358095302885438604/147000422096729819,514428205457640984/147000422096729819, 224504673820628091/147000422096729819,360766478189450370/147000422096729819] -// Z $B$d$=$NHyJ,$N7W;;$O(B hgm_ahg_contiguity $B4X?t$,$*$3$J$&$,(B, $B$3$l$N4J0W%$%s%?!<%U%'!<%9$O(B -// $B$^$@=q$$$F$J$$(B. +// Z やその微分の計算は hgm_ahg_contiguity 関数がおこなうが, これの簡易インターフェースは +// まだ書いてない. -4. x_ij $B$O(B [GM2016] $B$N#1>O$G(B, - $B$?$H$($P(B 3x3 $B$N;~(B [[1,1,1],[x_11,x_12,1],[x_21,x_22,1]] -$B$H$J$C$F$$$k$,(B, [GM2016] $B$N(B Prop 7.1 $B$NBP1~$G$O(B, - p = [[1,x_11,x_12],[1,x_21,x_22],[1,1,1]] $B$H$J$C$F$$$k$N$GCm0U(B. +4. x_ij は [GM2016] の1章で, + たとえば 3x3 の時 [[1,1,1],[x_11,x_12,1],[x_21,x_22,1]] +となっているが, [GM2016] の Prop 7.1 の対応では, + p = [[1,x_11,x_12],[1,x_21,x_22],[1,1,1]] となっているので注意.