Annotation of OpenXM/src/asir-contrib/packages/doc/mt_gkz/mt_gkz-en.texi, Revision 1.1
1.1 ! takayama 1: %% $OpenXM$
! 2: %% xetex mt_gkz-en.texi (.texi までつける. )
! 3: %% @math{tex形式の数式}
! 4: %% 参考: http://www.fan.gr.jp/~ring/doc/texinfo/texinfo-ja_14.html#SEC183
! 5: %% @tex{tex形式で書いたもの}
! 6: %%https://www.gnu.org/software/texinfo/manual/texinfo/html_node/_0040TeX-_0040LaTeX.html
! 7:
! 8: %% 英語版, 以下コメントは @comment で始める. \input texinfo 以降は普通の tex 命令は使えない.
! 9: \input texinfo-ja
! 10: @iftex
! 11: @catcode`@#=6
! 12: @def@fref#1{@xrefX[#1,,@code{#1},,,]}
! 13: @def@b#1{{@bf #1}}
! 14: @catcode`@#=@other
! 15: @end iftex
! 16: @overfullrule=0pt
! 17: @documentlanguage en
! 18: @c -*-texinfo-*-
! 19: @comment --- おまじない終り ---
! 20:
! 21: @comment --- GNU info ファイルの名前 ---
! 22: @setfilename mt_gkz_man
! 23:
! 24: @comment --- タイトル ---
! 25: @settitle GKZ hypergeometric system
! 26:
! 27: @comment --- おまじない ---
! 28: @ifinfo
! 29: @macro fref{name}
! 30: @ref{\name\,,@code{\name\}}
! 31: @end macro
! 32: @end ifinfo
! 33:
! 34: @titlepage
! 35: @comment --- おまじない終り ---
! 36:
! 37: @comment --- タイトル, バージョン, 著者名, 著作権表示 ---
! 38: @title GKZ hypergeometric system
! 39: @subtitle Pfaffian system (Pfaff equation), contiguity relations, cohomology intersection
! 40: @subtitle Version 1.0
! 41: @subtitle January 20, 2021
! 42:
! 43: @author by S-J. Matsubara-Heo, N.Takayama
! 44: @page
! 45: @vskip 0pt plus 1filll
! 46: Copyright @copyright{} Risa/Asir committers
! 47: 2004--2020. All rights reserved.
! 48: @end titlepage
! 49:
! 50: @comment --- おまじない ---
! 51: @synindex vr fn
! 52: @comment --- おまじない終り ---
! 53:
! 54: @comment --- @node は GNU info, HTML 用 ---
! 55: @comment --- @node の引数は node-name, next, previous, up ---
! 56: @node Top,, (dir), (dir)
! 57:
! 58: @comment --- @menu は GNU info, HTML 用 ---
! 59: @comment --- chapter 名を正確に並べる ---
! 60:
! 61: @menu
! 62: * About this document::
! 63: * Pfaff equation::
! 64: * b function::
! 65: * Utilities::
! 66: * Index::
! 67: @end menu
! 68:
! 69: @comment --- chapter の開始 ---
! 70: @comment --- 親 chapter 名を正確に. 親がない場合は Top ---
! 71: @node About this document,,, Top
! 72: @chapter About this document
! 73:
! 74: This document explains Risa/Asir functions for GKZ hypergeometric system
! 75: (A-hypergeometric system). @* @comment 強制改行
! 76: Loading the package:
! 77: @example
! 78: import("mt_gkz.rr");
! 79: @end example
! 80: @noindent
! 81: References cited in this document.
! 82: @itemize @bullet
! 83: @item [MT2020]
! 84: Saiei-Jaeyeong Matsubara-Heo, Nobuki Takayama,
! 85: Algorithms for Pfaffian Systems and Cohomology Intersection Numbers of Hypergeometric Integrals,
! 86: Lecture Notes in Computer Science 12097 (2020), 73--84.
! 87: Errata is posted on @uref{http://arxiv.org/abs/???}.
! 88: E-attachments can be obtainable at
! 89: @uref{http://www.math.kobe-u.ac.jp/OpenXM/Math/intersection2}
! 90: @item [GM2020]
! 91: Yoshiaki Goto, Saiei-Jaeyeong Matsubara-Heo,
! 92: Homology and cohomology intersection numbers of GKZ systems, arXiv:2006.07848
! 93: @item [SST1999]
! 94: M.Saito, B.Sturmfels, N.Takayama, Hypergeometric polynomials
! 95: and integer programming, Compositio Mathematica, 155 (1999), 185--204
! 96: @item [SST2000]
! 97: M.Saito, B.Sturmfels, N.Takayama, Groebner Deformations of Hypergeometric
! 98: Differential Equations. Springer, 2000.
! 99: @end itemize
! 100:
! 101: References for maple packages IntegrableConnections and OreMorphisms.
! 102: @itemize @bullet
! 103: @item [BCEW]
! 104: M.Barkatou, T.Cluzeau, C.El Bacha, J.-A.Weil,
! 105: IntegrableConnections – a maple package for computing closed form solutions of integrable connections
! 106: (2012). @uref{https://www.unilim.fr/pages perso/thomas.cluzeau/Packages/IntegrableConnections/PDS.html}
! 107: @item [CQ]
! 108: T.Cluzeau and A.Quadrat,
! 109: OreMorphisms: A homological algebraic package for factoring, reducing and decomposing linear functional systems (2009). @uref{https://who.rocq.inria.fr/Alban.Quadrat/OreMorphisms/index.html}
! 110: @item [CQ08]
! 111: T.Cluzeau, A.Quadrat, Factoring and decomposing a class of linear functional
! 112: systems, Linear Algebra and its Applications (LAA), 428(1): 324-381, 2008.
! 113: @end itemize
! 114:
! 115:
! 116:
! 117: @node Pfaff equation,,, Top
! 118: @chapter Pfaff equation
! 119:
! 120: @menu
! 121: * mt_gkz.pfaff_eq::
! 122: * mt_gkz.ff::
! 123: * mt_gkz.ff1::
! 124: * mt_gkz.ff2::
! 125: * mt_gkz.rvec_to_fvec::
! 126: @end menu
! 127:
! 128: @node Pfaff equation for given cocycles,,, Pfaff equation
! 129: @section Pfaff equation for given cocycles
! 130:
! 131: @comment **********************************************************
! 132: @comment --- 関数 pfaff_eq
! 133: @node mt_gkz.pfaff_eq,,, Pfaff equation for given cocycles
! 134: @subsection @code{mt_gkz.pfaff_eq}
! 135: @comment --- 索引用キーワード
! 136: @findex mt_gkz.pfaff_eq
! 137:
! 138: @table @t
! 139: @item mt_gkz.pfaff_eq(@var{A},@var{Beta},@var{Ap},@var{Rvec},@var{DirX})
! 140: :: It returns the Pfaff equation for the GKZ system defined by @var{A} and @var{Beta} with respect to cocycles defined by @var{Rvec}.
! 141: @end table
! 142:
! 143: @comment --- 引数の簡単な説明 ---
! 144: @table @var
! 145: @item return
! 146: a list of coefficients of the Pfaff equation with respect to the direction @var{DirX}
! 147: @item A
! 148: the matrix A of the GKZ system.
! 149: @item Beta
! 150: the parameter vector of the GKZ system.
! 151: @item Ap
! 152: See [MT2020].
! 153: @item Rvec
! 154: It is used to specify a basis of cocycles. See [MT2020]
! 155: @item DirX
! 156: a list of dxi's.
! 157: @end table
! 158:
! 159: @comment --- ここで関数の詳しい説明 ---
! 160: @comment --- @itemize〜@end itemize は箇条書き ---
! 161: @comment --- @bullet は黒点付き ---
! 162: @itemize @bullet
! 163: @item
! 164: The independent variables are x1, x2, x3, ...
! 165: @item
! 166: When @var{Rvec}=[v_1, v_2, ..., v_r] where r is the rank of the GKZ system,
! 167: the set of the cocycles standing for Av_1, Av_2, ..., Av_r
! 168: (see [MT2020])
! 169: is supposed
! 170: to be the basis to construct the Pfaffian system.
! 171: Let a_1, a_2, ..., a_n be the column vectors of the matrix A
! 172: and v be a column vector (x_1, x_2, ..., x_n)^T.
! 173: Av is defined as a_1 x_1 + a_2 x_2 + ... + a_n x_n.
! 174: @item
! 175: When the columns of @var{A} are expressed as
! 176: @math{e_i \otimes \alpha_{i_j}},
! 177: the columns of @var{Ap} is
! 178: @math{e_i \otimes 0} where $e_i$ is the i-th unit vector.
! 179: See [MT2020] on the definition of @var{Ap}.
! 180: Here are some examples.
! 181: When @var{A} is
! 182: @verbatim
! 183: [[1,1,0,0],
! 184: [0,0,1,1],
! 185: [0,1,0,1]]
! 186: @end verbatim
! 187: @var{Ap} is
! 188: @verbatim
! 189: [[1,1,0,0],
! 190: [0,0,1,1],
! 191: [0,0,0,0]] <-- zero row
! 192: @end verbatim
! 193: When @var{A} is
! 194: @verbatim
! 195: [[1,1,1,0,0,0],
! 196: [0,0,0,1,1,1],
! 197: [0,1,0,0,1,0],
! 198: [0,0,1,0,0,1]
! 199: ]
! 200: @end verbatim
! 201: @var{Ap} is
! 202: @verbatim
! 203: [[1,1,1,0,0,0],
! 204: [0,0,0,1,1,1],
! 205: [0,0,0,0,0,0], <-- zero row
! 206: [0,0,0,0,0,0] <-- zero row
! 207: ]
! 208: @end verbatim
! 209: See also page 223 of [SST2000].
! 210: @item
! 211: Option @var{xrule}. When the option @var{xrule} is given,
! 212: the x variables specified by this option are specialized to numbers.
! 213: @item
! 214: Option @var{shift}. When the matrix @var{A} is not normal
! 215: (the associated toric ideal is not normal), a proper shift vector
! 216: must be given to obtain an element of the b-ideal. Or, use the option
! 217: @var{b_ideal} below. See [SST1999] on the theory.
! 218: @item
! 219: Option @var{b_ideal}. When the matrix @var{A} is not normal,
! 220: the option @code{b_ideal=1} obtains b-ideals and the first element
! 221: of each b-ideal is used as the b-function. The option @var{shift}
! 222: is ignored.
! 223: @item
! 224: Option @var{cg}. A constant matrix given by this option is used
! 225: for the Gauge transformation of the Pfaffian system.
! 226: In other words, the basis of cocycles specified by @var{Rvec}
! 227: is transformed by the constant matrix given by this option.
! 228: @end itemize
! 229:
! 230: @comment --- @example〜@end example は実行例の表示 ---
! 231: Example: Gauss hypergeometric system, see [GM2020] example ??.
! 232: @example
! 233: [1883] import("mt_gkz.rr");
! 234: [2657] PP=mt_gkz.pfaff_eq(A=[[1,1,0,0],[0,0,1,1],[0,1,0,1]],
! 235: Beta=[-g1,-g2,-c],
! 236: Ap = [[1,1,0,0],[0,0,1,1],[0,0,0,0]],
! 237: Rvec = [[1,0,0,0],[0,0,1,0]],
! 238: DirX=[dx4,dx3] | xrule=[[x1,1],[x2,1]],
! 239: cg=matrix_list_to_matrix([[1,0],[-1,1]]))$
! 240:
! 241: Bfunctions=[s_1*s_2-s_1*s_3+s_1^2,s_1*s_3,s_2^2+(-s_3+s_1)*s_2,s_3*s_2]
! 242: -- snip --
! 243: [2658] PP[0];
! 244: [ (g2*x3-g2)/(x4-x3) (g2*x3)/(x4-x3) ]
! 245: [ ((-g2*x3-c+g2)*x4+(c-g1)*x3+g1)/(x4^2-x3*x4)
! 246: ((-g2*x3-c)*x4+(c-g1)*x3)/(x4^2-x3*x4) ]
! 247: [2659] PP[1];
! 248: [ (-g2*x4+g2)/(x4-x3) (-g2*x4)/(x4-x3) ]
! 249: [ ((g2*x3+c-g2-1)*x4+(-c+g1+1)*x3-g1)/(x3*x4-x3^2)
! 250: ((g2*x3+c-g2-1)*x4+(-c+g1+g2+1)*x3)/(x3*x4-x3^2) ]
! 251: @end example
! 252:
! 253: @*
! 254:
! 255: Example: The role of shift.
! 256: When the toric ideal is not normal, a proper shift vector
! 257: must be given with the option @code{shift} to find an element of the b-ideal.
! 258: @example
! 259: [1882] load("mt_gkz.rr");
! 260: [1883] A=[[1,1,1,1],[0,1,3,4]];
! 261: [[1,1,1,1],[0,1,3,4]]
! 262: [1884] Ap=[[1,1,1,1],[0,0,0,0]];
! 263: [[1,1,1,1],[0,0,0,0]]
! 264: [1885] Rvec=[[0,0,0,0],[0,0,1,0],[0,0,0,1],[0,0,0,2]];
! 265: [[0,0,0,0],[0,0,1,0],[0,0,0,1],[0,0,0,2]];
! 266: [2674] P=mt_gkz.pfaff_eq(A,[b1,b2],Ap,Rvec,DirX=[dx4]
! 267: | xrule=[[x1,1],[x2,2],[x3,4]] )$
! 268: dx remains
! 269: stopped in step_up at line 342 in file "./mt_gkz/saito-b.rr"
! 270: 342 if (type(dn(Ans)) > 1) error("dx remains");
! 271: (debug) quit
! 272: // Since the toric ideal for A is not normal, it stops with the error.
! 273: [2675] P=mt_gkz.pfaff_eq(A,[b1,b2],Ap,Rvec,DirX=[dx4]
! 274: | shift=[1,0],xrule=[[x1,1],[x2,2],[x3,4]])$
! 275: // It works.
! 276: @end example
! 277:
! 278: @comment --- 参照(リンク)を書く ---
! 279: @table @t
! 280: @item Refer to
! 281: @ref{mt_gkz.ff1}
! 282: @ref{mt_gkz.ff2}
! 283: @ref{mt_gkz.ff}
! 284: @ref{mt_gkz.rvec_to_fvec}
! 285: @end table
! 286: @comment mt_gkz.pfaff_eq の説明おわり. あとはこれの繰り返し.
! 287:
! 288:
! 289: @comment --- 個々の関数の説明 ---
! 290: @comment --- section 名を正確に ---
! 291: @node mt_gkz.ff2,,, Pfaff equation for given cocycles
! 292: @node mt_gkz.ff1,,, Pfaff equation for given cocycles
! 293: @node mt_gkz.ff,,, Pfaff equation for given cocycles
! 294: @subsection @code{mt_gkz.ff2}, @code{mt_gkz.ff1}, @code{mt_gkz.ff}
! 295: @comment --- 索引用キーワード
! 296: @findex mt_gkz.ff2
! 297: @findex mt_gkz.ff1
! 298: @findex mt_gkz.ff
! 299:
! 300: @table @t
! 301: @item mt_gkz.ff(@var{Rvec0},@var{A},@var{Beta},@var{Ap})
! 302: @item mt_gkz.ff1(@var{Rvec0},@var{A},@var{Beta},@var{Ap})
! 303: @item mt_gkz.ff2(@var{Rvec0},@var{A},@var{Beta},@var{Ap},@var{BF},@var{C})
! 304: :: @code{ff} returns a differential operator whose action to 1 gives
! 305: the cocycle defined by @var{Rvec0}
! 306: @end table
! 307:
! 308: @comment --- 引数の簡単な説明 ---
! 309: @table @var
! 310: @item return
! 311: @code{ff} returns a differential operator whose action to 1 of @math{M_A(\beta)}
! 312: gives the cocycle defined by @var{Rvec0}.
! 313: @item return
! 314: @code{ff1} returns a composite of step-down operators for the positive part
! 315: of @var{Rvec0}
! 316: @item return
! 317: @code{ff2} returns a composite of step-up operators for the positive part
! 318: of @var{Rvec0}
! 319: @item Rvec0
! 320: An element of @var{Rvec} explained in @ref{mt_gkz.pfaff_eq}.
! 321: @item BF
! 322: the list of b-functions to all directions.
! 323: @item C
! 324: the list of the step up operators for all a_1, a_2, ..., a_n.
! 325: @end table
! 326: Other arguments are same with those of @code{pfaff_eq}.
! 327:
! 328: @comment --- ここで関数の詳しい説明 ---
! 329: @comment --- @itemize〜@end itemize は箇条書き ---
! 330: @comment --- @bullet は黒点付き ---
! 331: @itemize @bullet
! 332: @item
! 333: The function @code{ff} generates the list of b-functions and the list of
! 334: step up operators and store them in the cache variable.
! 335: They can be obtained by calling as @code{S=mt_gkz.get_bf_step_up()}
! 336: where S[0] is the list of b-functions and S[1] is the list of step up
! 337: operators.
! 338: Step up operators are obtained by the algorithm given in [SST1999].
! 339: @item
! 340: Option nf. When nf=1, the output operator is reduced to the normal form
! 341: with respect to the Groebner basis of the GKZ system of the graded reverse
! 342: lexicographic order.
! 343: @item
! 344: Option shift. See @ref{mt_gkz.pfaff_eq}.
! 345: @item
! 346: Internal info: The function @code{mt_gkz.bb} gives the constant so that
! 347: the step up and step down operators (contiguity operators) give
! 348: contiguity relations for the integral representation in [MT2020].
! 349: Note that @code{mt_gkz.ff1} and @code{mt_gkz.ff2} give contiguity
! 350: relations which are constant multiple of those for hypergeometric
! 351: polynomials.
! 352: @item
! 353: Internal info: @code{mt_gkz.step_up} generates step up operators
! 354: of [SST1999] from b-functions by utilizing @code{mt_gkz.bf2euler}
! 355: and @code{mt_gkz.toric}.
! 356: @end itemize
! 357:
! 358: @comment --- @example〜@end example は実行例の表示 ---
! 359: Example: Step up operators compatible with the integral representation in [MT2020].
! 360: The function hgpoly_res defined in @code{check-by-hgpoly.rr} returns
! 361: a multiple of the hypergeometric polynomial which agrees with
! 362: the residue times a power of @math{2\pi \sqrt{-1}}
! 363: of the integral representation.
! 364: See [SST1999].
! 365: @example
! 366: [1883] import("mt_gkz.rr")$
! 367: [3175] load("mt_gkz/check-by-hgpoly.rr")$
! 368: [3176] A=[[1,1,0,0],[0,0,1,1],[0,1,0,1]]$
! 369: [3177] B=newvect(3,[5,4,7])$ Ap=[[1,1,0,0],[0,0,1,1],[0,0,0,0]]$
! 370: [3179] Beta=[b1,b2,b3]$ R=[0,0,-1,0]$
! 371: [3180] F2=hgpoly_res(A,B,2); // HG polynomial. 2 is the number of e_i's.
! 372: 10*x1^2*x2^3*x4^4+20*x1*x2^4*x3*x4^3+6*x2^5*x3^2*x4^2
! 373: [3182] mt_gkz.ff(R,A,Ap,Beta); // the operator standing for R
! 374: (x3*x4*dx4+x3^2*dx3+x1*x4*dx2+x1*x3*dx1+x3)/(b1+b2-b3+1)
! 375: [3184] S=mt_gkz.get_bf_step_up(A); // b-function and non-reduced step up op's
! 376: [[ s_1*s_2-s_1*s_3+s_1^2 s_1*s_3 s_2^2+(-s_3+s_1)*s_2 s_3*s_2 ],
! 377: [ x2*x3*dx4+x1*x3*dx3+x1*x2*dx2+x1^2*dx1+x1
! 378: x2*x4*dx4+x1*x4*dx3+x2^2*dx2+x1*x2*dx1+x2
! 379: x3*x4*dx4+x3^2*dx3+x1*x4*dx2+x1*x3*dx1+x3
! 380: x4^2*dx4+x3*x4*dx3+x2*x4*dx2+x2*x3*dx1+x4 ]]
! 381: [3185] Fvec=mt_gkz.ff2(R,A,Beta,Ap,S[0],S[1]);
! 382: (x3*x4*dx4+x3^2*dx3+x1*x4*dx2+x1*x3*dx1+x3)/(b1+b2-b3+1)
! 383: [3188] Fvec = base_replace(Fvec,assoc(Beta,vtol(B)));
! 384: 1/3*x3*x4*dx4+1/3*x3^2*dx3+1/3*x1*x4*dx2+1/3*x1*x3*dx1+1/3*x3
! 385: [3189] R32d = odiff_act(Fvec,F2,[x1,x2,x3,x4]); // Act Fvec to the hg-poly
! 386: 10*x1^3*x2^2*x4^5+50*x1^2*x2^3*x3*x4^4+50*x1*x2^4*x3^2*x4^3+10*x2^5*x3^3*x4^2
! 387: [3190] red(R32d/hgpoly_res(A,B+newvect(3,[0,1,0]),2));
! 388: // R32d agrees with the HG polynomial with Beta=[5,4,7]+[0,1,0].
! 389: 1
! 390: @end example
! 391:
! 392: @comment --- 参照(リンク)を書く ---
! 393: @table @t
! 394: @item Refer to
! 395: @ref{mt_gkz.pfaff_eq}
! 396: @end table
! 397: @comment おわり.
! 398:
! 399: @comment --- 個々の関数の説明 --- Ref:2020-11-09-tw-cohom-progs.goodnotes
! 400: @comment --- section 名を正確に ---
! 401: @node mt_gkz.rvec_to_fvec,,, Pfaff equation for given cocycles
! 402: @subsection @code{mt_gkz.rvec_to_fvec}
! 403: @comment --- 索引用キーワード
! 404: @findex mt_gkz.rvec_to_fvec
! 405:
! 406: @table @t
! 407: @item mt_gkz.rvec_to_fvec(@var{Rvec},@var{A},@var{Ap},@var{Beta})
! 408: :: It returns a set of differential operators standing for @var{Rvec}.
! 409: @end table
! 410:
! 411: @comment --- 引数の簡単な説明 ---
! 412: @table @var
! 413: @item return
! 414: It returns a set of differential operators of which action to
! 415: @math{1 \in M_A(\beta)} give cocycles specified by @var{Rvec}.
! 416: @item A, Ap, Beta
! 417: Same with @ref{mt_gkz.pfaff_eq}
! 418: @end table
! 419:
! 420: @comment --- ここで関数の詳しい説明 ---
! 421: @comment --- @itemize〜@end itemize は箇条書き ---
! 422: @comment --- @bullet は黒点付き ---
! 423: @itemize @bullet
! 424: @item
! 425: Internal info: this function builds the set of operators by calling
! 426: @ref{mt_gkz.ff}.
! 427: @end itemize
! 428:
! 429: @comment --- @example〜@end example は実行例の表示 ---
! 430: Example: The following two expressions are congruent because
! 431: @math{2a_1-a_2-a_3+a_4=a_1} for this @code{A}.
! 432: @example
! 433: [1883] import("mt_gkz.rr");
! 434: [3191] mt_gkz.rvec_to_fvec([[2,-1,-1,1],[0,0,1,0]],
! 435: [[1,1,0,0],[0,0,1,1],[0,1,0,1]],
! 436: [[1,1,0,0],[0,0,1,1],[0,0,0,0]],[b1,b2,b3]);
! 437: [(x2*x3*x4^2*dx1^2*dx4^3+((x1*x3*x4^2+x2*x3^2*x4)*dx1^2*dx3
! 438: +(x1*x2*x4^2+x2^2*x3*x4)*dx1^2*dx2+(x1^2*x4^2+2*x1*x2*x3*x4+x2^2*x3^2)*dx1^3
! 439: +(x1*x4^2+3*x2*x3*x4)*dx1^2)*dx4^2+(x1*x3^2*x4*dx1^2*dx3^2
! 440: +((x1^2*x3*x4+x1*x2*x3^2)*dx1^3+(3*x1*x3*x4+x2*x3^2)*dx1^2)*dx3
! 441: +x1*x2^2*x4*dx1^2*dx2^2+((x1^2*x2*x4+x1*x2^2*x3)*dx1^3
! 442: +(3*x1*x2*x4+x2^2*x3)*dx1^2)*dx2+x1^2*x2*x3*dx1^4
! 443: +(x1^2*x4+3*x1*x2*x3)*dx1^3+(x1*x4+x2*x3)*dx1^2)*dx4)
! 444: /(b3*b2*b1^3+(b3*b2^2+(-b3^2-2*b3)*b2)*b1^2+(-b3*b2^2+(b3^2+b3)*b2)*b1),
! 445: (dx3)/(b2)]
! 446: [3192] mt_gkz.rvec_to_fvec([[1,0,0,0],[0,0,1,0]],
! 447: [[1,1,0,0],[0,0,1,1],[0,1,0,1]],
! 448: [[1,1,0,0],[0,0,1,1],[0,0,0,0]],[b1,b2,b3]);
! 449: [(dx1)/(b1),(dx3)/(b2)]
! 450: @end example
! 451:
! 452: @comment --- 参照(リンク)を書く ---
! 453: @table @t
! 454: @item Refer to
! 455: @ref{mt_gkz.pfaff_eq}
! 456: @end table
! 457: @comment おわり.
! 458:
! 459: @comment --- fvec_to_conn_mat
! 460: @comment --- section 名を正確に ---
! 461: @node mt_gkz.fvec_to_conn_mat,,, Pfaff equation for given cocycles
! 462: @subsection @code{mt_gkz.fvec_to_conn_mat}
! 463: @comment --- 索引用キーワード
! 464: @findex mt_gkz.fvec_to_conn_mat
! 465:
! 466: @table @t
! 467: @item mt_gkz.fvec_to_conn_mat(@var{Fvec},@var{A},@var{Beta},@var{DirX})
! 468: :: It returns the coefficient matrices of the basis
! 469: @var{Fvec} or @var{DirX}[I]*@var{Fvec} in terms of the set of the standard basis.
! 470: @end table
! 471:
! 472: @comment --- 引数の簡単な説明 ---
! 473: @table @var
! 474: @item return
! 475: It returns the coefficient matrices of the basis
! 476: @var{Fvec} or @var{DirX}[I]*@var{Fvec} in terms of the set of the standard basis of the Groebner basis explained below.
! 477: @item A Beta
! 478: Same with @ref{mt_gkz.pfaff_eq}.
! 479: @item DirX
! 480: When @var{DirX} is 1, this function returns the matrix which expresses
! 481: @var{Fvec} in terms of the set of the standard monomials of
! 482: the Groebner basis of the GKZ system in the ring of rational function
! 483: coefficients with respect to the graded reverse lexicographic order.
! 484: In other cases, it returns the coefficient matrices of
! 485: @var{DirX}[I]'s*@var{Fvec} in terms of the set of the standard basis of the Groebner basis.
! 486: @end table
! 487:
! 488: @comment --- ここで関数の詳しい説明 ---
! 489: @comment --- @itemize〜@end itemize は箇条書き ---
! 490: @comment --- @bullet は黒点付き ---
! 491: @itemize @bullet
! 492: @item
! 493: It utilizes a Groebner basis computation by the package @code{yang.rr}
! 494: and @code{yang.reduction} to obtain connection matrices.
! 495: @item
! 496: This function calls some utility functions
! 497: @code{mt_gkz.dmul(Op1,Op2,XvarList)} (multiplication of @code{Op1} and @code{Op2}
! 498: and @code{mt_gkz.index_vars(x,Start,End | no_=1)}
! 499: which generates indexed variables without the underbar ``_''.
! 500: @item
! 501: We note here some other utility functions in this section:
! 502: @code{mt_gkz.check_compatibility(P,Q,X,Y)},
! 503: which checkes if the sytem d/dX-P, d/dY-Q is compatible.
! 504: @end itemize
! 505:
! 506: @comment --- @example〜@end example は実行例の表示 ---
! 507: Example: The following example illustrates how mt_gkz.pfaff_eq
! 508: obtains connection matrices.
! 509: @example
! 510: [1883] import("mt_gkz.rr");
! 511: [3201] V=mt_gkz.index_vars(x,1,4 | no_=1);
! 512: [x1,x2,x3,x4]
! 513: [3202] mt_gkz.dmul(dx1,x1^2,V);
! 514: x1^2*dx1+2*x1
! 515: [3204] A=[[1,1,0,0],[0,0,1,1],[0,1,0,1]]$
! 516: Ap=[[1,1,0,0],[0,0,1,1],[0,0,0,0]]$
! 517: Beta= [b1,b2,b3]$
! 518: Rvec = [[1,0,0,0],[0,0,1,0]]$
! 519: Fvec = mt_gkz.rvec_to_fvec(Rvec,A,Ap,Beta)$
! 520: /* Express cocyles Rvec
! 521: by elements Fvec in the Weyl algebra by contiguity relations. */
! 522: Cg = matrix_list_to_matrix([[1,0],[1,-1]])$
! 523: [3208] NN=mt_gkz.fvec_to_conn_mat(Fvec,A,Beta,1);
! 524: // Express Fvec by the standard monomials Std=NN[1].
! 525: 1 ooo 2 .ooo
! 526: [[ (x4)/(b1*x1) (b1-b3)/(b1*x1) ]
! 527: [ (-x4)/(b1*x2) (1)/(x3) ],[dx4,1]]
! 528: [3209] Std=NN[1];
! 529: [dx4,1]
! 530: [3173] NN=NN[0];
! 531: [ (x4)/(b1*x1) (b1-b3)/(b1*x1) ]
! 532: [ (-x4)/(b2*x3) (1)/(x3) ]
! 533: [3174] NN1=mt_gkz.fvec_to_conn_mat(Fvec,A,Beta,dx1)[0];
! 534: // Express dx1*Fvec by the standard monomials Std.
! 535: 1 ooo 2 .ooo
! 536: [ ((2*b1+b2-b3-1)*x1*x4^2+(-b1+b3+1)*x2*x3*x4)/(b1*x1^3*x4-b1*x1^2*x2*x3)
! 537: ((b1^2+(-2*b3-1)*b1-b3*b2+b3^2+b3)*x1*x4
! 538: +(-b1^2+(2*b3+1)*b1-b3^2-b3)*x2*x3)/(b1*x1^3*x4-b1*x1^2*x2*x3) ]
! 539: [(b1 (-b1*x1*x4^2-b2*x2*x3*x4)/(b2*x1^2*x3*x4-b2*x1*x2*x3^2)
! 540: (b1*x1*x4+(-b1+b3)*x2*x3)/(x1^2*x3*x4-x1*x2*x3^2) ]
! 541: [3188] P1=map(red,Cg*NN1*matrix_inverse(NN)*matrix_inverse(Cg));
! 542: [ ((-b2*x3+(b1+b2-b3-1)*x1)*x4+(-b1+b3+1)*x2*x3)/(x1^2*x4-x1*x2*x3)
! 543: (b2*x3*x4)/(x1^2*x4-x1*x2*x3) ]
! 544: [ ((-b2*x3+(b2-b3-1)*x1)*x4+(-b1+b3+1)*x2*x3+b1*x1*x2)/(x1^2*x4-x1*x2*x3)
! 545: ((b2*x3+b1*x1)*x4)/(x1^2*x4-x1*x2*x3) ]
! 546:
! 547: [3191] mt_gkz.pfaff_eq(A,Beta,Ap,Rvec,[dx1]|cg=Cg)[0]-P1;
! 548: [ 0 0 ]
! 549: [ 0 0 ] // P1 agrees with the output of mt_gkz.pfaff_eq.
! 550: @end example
! 551:
! 552: @comment --- 参照(リンク)を書く ---
! 553: @table @t
! 554: @item Refer to
! 555: @ref{mt_gkz.pfaff_eq}
! 556: @end table
! 557: @comment おわり.
! 558:
! 559: @comment ---------- New Chapter ---------------
! 560: @node b function,,, Top
! 561: @chapter b function
! 562:
! 563: @menu
! 564: * mt_gkz.bf::
! 565: * mt_gkz.bf::
! 566: @end menu
! 567:
! 568: @node b function and facet polynomial,,, b function
! 569: @section b function and facet polynomial
! 570: @comment ------- bf
! 571: @comment **********************************************************
! 572: @comment --- 個々の関数の説明 ---
! 573: @comment --- section 名を正確に ---
! 574: @node mt_gkz.bf,,, b function and facet polynomial
! 575: @subsection @code{mt_gkz.bf}
! 576: @comment --- 索引用キーワード
! 577: @findex mt_gkz.bf
! 578:
! 579: @table @t
! 580: @item mt_gkz.bf(@var{A},@var{Facet_poly},@var{II0})
! 581: :: It returns the b-function with respect to the direction @var{II0}.
! 582: @end table
! 583:
! 584: @comment --- 引数の簡単な説明 ---
! 585: @table @var
! 586: @item return
! 587: It returns the b-function introduced Saito with respect to the direction @var{II0} in case of @var{A} is normal or an element of b-ideal when a proper shift vector is given in case of @var{A} is not normal.
! 588: @item A
! 589: the matrix A of the GKZ system.
! 590: @item Facet_poly
! 591: The set of facet polynomials of the convex hull of @var{A}.
! 592: @item II0
! 593: Direction expressed as 0, 1, 2, ... (not 1, 2, 3, ...) to obtain the b function.
! 594: @end table
! 595:
! 596: @comment --- ここで関数の詳しい説明 ---
! 597: @comment --- @itemize〜@end itemize は箇条書き ---
! 598: @comment --- @bullet は黒点付き ---
! 599: @itemize @bullet
! 600: @item
! 601: See [SST1999] on the b-function introduced Saito and b-ideal.
! 602: @item
! 603: The facet polynomial must be primitive.
! 604: @end itemize
! 605:
! 606: @comment --- @example〜@end example は実行例の表示 ---
! 607: Example:
! 608: @example
! 609: [1883] import("mt_gkz.rr");
! 610:
! 611: [3193] A;
! 612: [[1,1,0,0],[0,0,1,1],[0,1,0,1]]
! 613: [3194] Fpoly=mt_gkz.facet_poly(A);
! 614: [[s_3,s_1,s_2-s_3+s_1,s_2],[[0,0,1],[1,0,0],[1,1,-1],[0,1,0]]]
! 615: [3196] mt_gkz.bf(A,Fpoly,0);
! 616: s_1*s_2-s_1*s_3+s_1^2
! 617: [3197] mt_gkz.bf(A,Fpoly,1);
! 618: s_1*s_3
! 619: @end example
! 620:
! 621: @comment --- 参照(リンク)を書く ---
! 622: @table @t
! 623: @item Refer to
! 624: @ref{mt_gkz.ff}
! 625: @ref{mt_gkz.facet_poly}
! 626: @end table
! 627: @comment おわり.
! 628:
! 629: @comment ------ facet_poly
! 630: @comment --- 個々の関数の説明 ---
! 631: @comment --- section 名を正確に ---
! 632: @node mt_gkz.facet_polyl,,, b function and facet polynomial
! 633: @subsection @code{mt_gkz.facet_poly}
! 634: @comment --- 索引用キーワード
! 635: @findex mt_gkz.facet_poly
! 636:
! 637: @table @t
! 638: @item mt_gkz.facet_poly(@var{A})
! 639: :: It returns the set of facet polynomials and their normal vectors of
! 640: the cone defined by @var{A}.
! 641: @end table
! 642:
! 643: @comment --- 引数の簡単な説明 ---
! 644: @table @var
! 645: @item return
! 646: It returns the set of facet polynomials and their normal vectors of
! 647: the cone generated by the column vectors of the matrix @var{A}.
! 648: @item A
! 649: the matrix A of the GKZ system.
! 650: @end table
! 651:
! 652: @comment --- ここで関数の詳しい説明 ---
! 653: @comment --- @itemize〜@end itemize は箇条書き ---
! 654: @comment --- @bullet は黒点付き ---
! 655: @itemize @bullet
! 656: @item
! 657: The facet polynomial f is primitive. In other words,
! 658: all f(a_i) is integer and min f(a_i)=1 for a_i's not being on f=0.
! 659: where a_i is the i-th column vector of the matrix @var{A}.
! 660: It can be checked by @code{mt_gkz.is_primitive(At,Facets)}
! 661: where @var{At} is the transpose of @var{A} and
! 662: @var{Facets} is the second return value of this function.
! 663: @item
! 664: This function utilizes the system polymake @uref{https://polymake.org}
! 665: on our server.
! 666: @end itemize
! 667:
! 668: @comment --- @example〜@end example は実行例の表示 ---
! 669: Example:
! 670: @example
! 671: [1883] import("mt_gkz.rr");
! 672: [1884] mt_gkz.facet_poly([[1,1,1,1],[0,1,2,3]]);
! 673: oohg_native=0, oohg_curl=1
! 674: [[s_2,-s_2+3*s_1],[[0,1],[3,-1]]]
! 675: @end example
! 676:
! 677: @comment --- 参照(リンク)を書く ---
! 678: @table @t
! 679: @item Refer to
! 680: @ref{mt_gkz.bf}
! 681: @end table
! 682: @comment おわり.
! 683:
! 684: @comment ---------- New Chapter ---------------
! 685: @node utilities,,, Top
! 686: @chapter Utilities
! 687:
! 688: @menu
! 689: * mt_gkz.reduce_by_toric::
! 690: * mt_gkz.tk_base_equal::
! 691: * mt_gkz.dp_op_to_coef_vec::
! 692: * mt_gkz.yang_gkz_buch::
! 693: * mt_gkz.p_true_nf_rat::
! 694: * mt_gkz.mdiff::
! 695: * mt_gkz.dvar::
! 696: * mt_gkz.ord_xi::
! 697: * mt_gkz.get_check_fvec::
! 698: * mt_gkz.get_bf_step_up::
! 699: @end menu
! 700:
! 701: @node some utility functions,,, utilities
! 702: @section Some utility functions
! 703:
! 704: @node mt_gkz.reduce_by_toric,,, some utility functions
! 705: @node mt_gkz.tk_base_equal,,, some utility functions
! 706: @node mt_gkz.dp_op_to_coef_vec,,, some utility functions
! 707: @node mt_gkz.yang_gkz_buch,,, some utility functions
! 708: @node mt_gkz.p_true_nf_rat,,, some utility functions
! 709: @node mt_gkz.mdiff,,, some utility functions
! 710: @node mt_gkz.dvar,,, some utility functions
! 711: @node mt_gkz.ord_xi,,, some utility functions
! 712: @node mt_gkz.get_check_fvec,,, some utility functions
! 713: @node mt_gkz.get_bf_step_up,,, some utility functions
! 714:
! 715: @findex mt_gkz.reduce_by_toric
! 716: @findex mt_gkz.tk_base_equal
! 717: @findex mt_gkz.dp_op_to_coef_vec
! 718: @findex mt_gkz.yang_gkz_buch
! 719: @findex mt_gkz.p_true_nf_rat
! 720: @findex mt_gkz.mdiff
! 721: @findex mt_gkz.dvar
! 722: @findex mt_gkz.ord_xi
! 723: @findex mt_gkz.get_check_fvec
! 724: @findex mt_gkz.get_bf_step_up
! 725:
! 726: @comment --- @example〜@end example は実行例の表示 ---
! 727: We only show examples on these functions. As for details, please see
! 728: the source code.
! 729: @example
! 730: [1883] import("mt_gkz.rr");
! 731: [2667] mt_gkz.dvar([x1,x2]); // it generates variables starting with d
! 732: [dx1,dx2]
! 733: [2669] mt_gkz.p_true_nf_rat((1/3)*x^3-1,[x^2-1],[x],0);
! 734: [x-3,3] // p_true_nf does not accept rational number coefficients
! 735: [2670] A=[[1,1,1,1],[0,1,3,4]];
! 736: [[1,1,1,1],[0,1,3,4]]
! 737: [2671] mt_gkz.reduce_by_toric(dx3^4,A);
! 738: dx1*dx4^3 // reduction by toric ideal defined by A
! 739: [2672] nk_toric.toric_ideal(A);
! 740: [-x1*x4+x2*x3,-x2*x4^2+x3^3,x2^2*x4-x1*x3^2,-x1^2*x3+x2^3]
! 741: [2673] mt_gkz.yang_gkz_buch(A,[b1,b2]); // Groebner basis of GKZ system by yang.rr
! 742: 1 o 2 ..o 3 ..oooooooo 4 o 6 ooo 9 o
! 743: [[[(x2)*<<0,1,0,0>>+(3*x3)*<<0,0,1,0>>+ ---snip ---*<<0,0,0,0>>,1]],
! 744: [dx1,dx2,dx3,dx4],
! 745: [(1)*<<0,0,0,2>>,(1)*<<0,0,1,0>>,(1)*<<0,0,0,1>>,(1)*<<0,0,0,0>>]]
! 746:
! 747: [2674] mt_gkz.dp_op_to_coef_vec([x1*<<1,0>>+x1*x2*<<0,1>>,x1+1],[<<1,0>>,<<0,1>>]);
! 748: // x1+1 is the denominator
! 749: [ (x1)/(x1+1) (x1*x2)/(x1+1) ]
! 750: [2675] mt_gkz.tk_base_is_equal([1,2],[1,2]);
! 751: 1
! 752: [2676] mt_gkz.tk_base_is_equal([1,2],[1,x,y]);
! 753: 0
! 754: [2677] mt_gkz.mdiff(sin(x),x,1);
! 755: cos(x)
! 756: [2678] mt_gkz.mdiff(sin(x),x,2); //2nd derivative
! 757: -sin(x)
! 758: [3164] mt_gkz.ord_xi(V=[x1,x2,x3],II=1);
! 759: // matrix to define graded lexicographic order so that V[II] is the smallest.
! 760: [ 1 1 1 ]
! 761: [ 0 -1 0 ]
! 762: [ -1 0 0 ]
! 763: [3166] load("mt_gkz/check-by-hgpoly.rr");
! 764: [3187] check_0123(); // check the pfaffian for the A below by hg-polynomial.
! 765: A=[[1,1,1,1],[0,1,2,3]]
! 766: Ap=[[1,1,1,1],[0,0,0,0]]
! 767: --- snip ---
! 768: Bfunctions= --- snip ---
! 769: 0 (vector) is expected:
! 770: [[ 0 0 0 ],[ 0 0 0 ]]
! 771: [3188] mt_gkz.get_check_fvec();
! 772: // get the basis of cocycles used in terms of differential operators.
! 773: [1,(dx4)/(b1),(dx4^2)/(b1^2-b1)]
! 774: [3189] mt_gkz.clear_bf();
! 775: 0
! 776: [3190] mt_gkz.get_bf_step_up(A=[[1,1,1,1],[0,1,2,3]]);
! 777: // b-functions and step-up operators.
! 778: // Option b_ideal=1 or shift=... may be used for non-normal case.
! 779: [[ -s_2^3+(9*s_1-3)*s_2^2+ ---snip---
! 780: -s_2^3+(3*s_1+1)*s_2^2-3*s_1*s_2 s_2^3-3*s_2^2+2*s_2 ],
! 781: [ x3^3*dx4^2+ ---snip---
! 782: 3*x3^2*x4*dx4^2+ --- snip---]]
! 783: @end example
! 784:
! 785:
! 786:
! 787:
! 788:
! 789:
! 790:
! 791:
! 792:
! 793:
! 794:
! 795:
! 796:
! 797:
! 798:
! 799:
! 800:
! 801:
! 802:
! 803:
! 804:
! 805:
! 806:
! 807:
! 808:
! 809:
! 810:
! 811:
! 812:
! 813:
! 814:
! 815:
! 816:
! 817:
! 818:
! 819:
! 820:
! 821:
! 822:
! 823:
! 824:
! 825:
! 826:
! 827:
! 828:
! 829:
! 830:
! 831:
! 832:
! 833:
! 834:
! 835:
! 836:
! 837:
! 838:
! 839:
! 840: @comment ここから追加版
! 841:
! 842: @node Cohomology intersection numbers,,, Top
! 843: @chapter Cohomology intersection numbers
! 844:
! 845: @menu
! 846: * mt_gkz.kronecker_prd::
! 847: * mt_gkz.secondary_eq::
! 848: * mt_gkz.generate_maple_file_IC::
! 849: * mt_gkz.generate_maple_file_MR::
! 850: * mt_gkz.normalizing_constant::
! 851: @end menu
! 852:
! 853:
! 854:
! 855:
! 856:
! 857:
! 858: @node Secondary equation,,, Cohomology intersection numbers
! 859: @section Secondary equation
! 860:
! 861: @comment **********************************************************
! 862: @comment --- 関数 pfaff_eq
! 863: @node mt_gkz.kronecker_prd,,, Secondary equation
! 864: @subsection @code{mt_gkz.kronecker_prd}
! 865: @comment --- 索引用キーワード
! 866: @findex mt_gkz.kronecker_prd
! 867:
! 868: @table @t
! 869: @item mt_gkz.kronecker_prd(@var{A},@var{B})
! 870: :: It returns the Kronecker product of @var{A} and @var{B}.
! 871: @end table
! 872:
! 873: @comment --- 引数の簡単な説明 ---
! 874: @table @var
! 875: @item return
! 876: a matrix which is equal to the Kronecker product of @var{A} and @var{B} (https://en.wikipedia.org/wiki/Kronecker_product).
! 877: @item A,B
! 878: list
! 879: @end table
! 880:
! 881:
! 882: @comment --- @example〜@end example は実行例の表示 ---
! 883:
! 884: @example
! 885: [2644] A=[[a,b],[c,d]];
! 886: [[a,b],[c,d]]
! 887: [2645] B=[[e,f],[g,h]];
! 888: [[e,f],[g,h]]
! 889: [2646] kronecker_prd(A,B);
! 890: [ e*a f*a e*b f*b ]
! 891: [ g*a h*a g*b h*b ]
! 892: [ e*c f*c e*d f*d ]
! 893: [ g*c h*c g*d h*d ]
! 894: @end example
! 895:
! 896:
! 897:
! 898:
! 899:
! 900:
! 901:
! 902:
! 903: @node mt_gkz.secondary_eq,,, Secondary equation
! 904: @subsection @code{mt_gkz.secondary_eq}
! 905: @comment --- 索引用キーワード
! 906: @findex mt_gkz.secondary_eq
! 907:
! 908: @table @t
! 909: @item mt_gkz.secondary_eq(@var{A},@var{Beta},@var{Ap},@var{Rvec},@var{DirX})
! 910: :: It returns the secondary equation with respect to cocycles defined by Rvec.
! 911: @end table
! 912:
! 913:
! 914: @table @var
! 915: @item return
! 916: a list of coefficients of the Pfaffian system corresponding to the secondary equation (cf. equation (8) of [MT2020]).
! 917: @item A,Beta,Ap,Rvec,DirX
! 918: see @code{pfaff_eq}
! 919: @end table
! 920:
! 921:
! 922:
! 923: @comment --- ここで関数の詳しい説明 ---
! 924: @comment --- @itemize〜@end itemize は箇条書き ---
! 925: @comment --- @bullet は黒点付き ---
! 926: @itemize @bullet
! 927: @item
! 928: The secondary equation is originally a Pfaffian system for an unkwon @math{r} by @math{r} matrix @math{I} with @math{r=}length(Rvec). We set @math{Y=(I_{11},I_{12},...,I_{1r},I_{21},I_{22},...)^T}. Then, the secondary equation can be seen as a Pfaffian system @math{{dY\over dx_i}=A_iY} with DirX=@math{\{dx_i\}_i}. The function mt_gkz.secondary_eq(@var{A},@var{Beta},@var{Ap},@var{Rvec},@var{DirX}) outputs a list obtained by aligning the matrices @math{A_i}.
! 929: @item
! 930: Let @math{F:=(\omega_i)_i} be a column vector whose entries are given by the cohomology classes specified by entries of Rvec. Then, @code{pfaff_eq} computes the Pfaffian matrices @math{P_i} so that @math{{dF\over dx_i}=P_iF}. If @math{Q_i} denotes the matrix obtained by replacing Beta by -Beta, we have @math{A_i=}@code{mt_gkz.kronecker_prd}(E,@math{P_i})+@code{mt_gkz.kronecker_prd}(@math{Q_i},E) where E is the identity matrix of size length(Rvec).
! 931: @item Options xrule, shift, b_ideal,cg.
! 932: Same as @code{pfaff_eq}.
! 933: @end itemize
! 934:
! 935: @comment --- @example〜@end example は実行例の表示 ---
! 936: Example:
! 937: @example
! 938: [2647] Beta=[b1,b2,b3]$
! 939: [2648] DirX=[dx1,dx4]$
! 940: [2649] Rvec=[[1,0,0,0],[0,0,1,0]]$
! 941: [2650] A=[[1,1,0,0],[0,0,1,1],[0,1,0,1]]$
! 942: [2651] Ap=[[1,1,0,0],[0,0,1,1],[0,0,0,0]]$
! 943: [2652] Xrule=[[x2,1],[x3,1]]$
! 944: [2653] P=secondary_eq(A,Beta,Ap,Rvec,DirX|xrule=Xrule)$
! 945: --snip--
! 946: [2654] length(P);
! 947: 2
! 948: [2655] P[0];
! 949: [[(-2*x1^3*x4^2+4*x1^2*x4-2*x1)/(x1^4*x4^2-2*x1^3*x4+x1^2),(b2*x4)/(x1^2*x4-x1),
! 950: (-b2*x4)/(x1^2*x4-x1),0],[(b1)/(x1*x4-1),
! 951: ((b2-4/3)*x1^2*x4^2+(-b1-b2+8/3)*x1*x4+b1-4/3)/(x1^3*x4^2-2*x1^2*x4+x1),0,
! 952: (-b2*x4)/(x1^2*x4-x1)],[(-b1)/(x1*x4-1),0,
! 953: ((-b2-2/3)*x1^2*x4^2+(b1+b2+4/3)*x1*x4-b1-2/3)/(x1^3*x4^2-2*x1^2*x4+x1),
! 954: (b2*x4)/(x1^2*x4-x1)],[0,(-b1)/(x1*x4-1),(b1)/(x1*x4-1),0]]
! 955: <--- Paffian matrix in x1 direction.
! 956: [2656] P[1];
! 957: [[0,(b2)/(x1*x4-1),(-b2)/(x1*x4-1),0],[(b1*x1)/(x1*x4^2-x4),
! 958: ((b2-1/3)*x1^2*x4^2+(-b1-b2+2/3)*x1*x4+b1-1/3)/(x1^2*x4^3-2*x1*x4^2+x4),0,
! 959: (-b2)/(x1*x4-1)],[(-b1*x1)/(x1*x4^2-x4),0,
! 960: ((-b2+1/3)*x1^2*x4^2+(b1+b2-2/3)*x1*x4-b1+1/3)/(x1^2*x4^3-2*x1*x4^2+x4),
! 961: (b2)/(x1*x4-1)],[0,(-b1*x1)/(x1*x4^2-x4),(b1*x1)/(x1*x4^2-x4),0]]
! 962: <--- Paffian matrix in x4 direction.
! 963: @end example
! 964:
! 965: @comment --- 参照(リンク)を書く ---
! 966: @table @t
! 967: @item Refer to
! 968: @ref{mt_gkz.pfaff_eq}
! 969: @end table
! 970: @comment おわり.
! 971:
! 972:
! 973:
! 974:
! 975: @node mt_gkz.generate_maple_file_IC,,, Secondary equation
! 976: @subsection @code{mt_gkz.generate_maple_file_IC}
! 977: @comment --- 索引用キーワード
! 978: @findex mt_gkz.generate_maple_file_IC
! 979:
! 980: @table @t
! 981: @item mt_gkz.generate_maple_file_IC(@var{A},@var{Beta},@var{Ap},@var{Rvec},@var{DirX})
! 982: :: It returns the maple input for a solver of a Pfaffian system IntegrableConnections[RationalSolutions].
! 983: @end table
! 984:
! 985: @comment --- 引数の簡単な説明 ---
! 986: @table @var
! 987: @item return
! 988: a maple input file for the function IntegrableConnections[RationalSolutions] (cf. [BCEW]) for the Pfaffian system mt_gkz.secondary_eq(@var{A},@var{Beta},@var{Ap},@var{Rvec},@var{DirX}).
! 989: @item A,Beta,Ap,Rvec,DirX
! 990: see @code{pfaff_eq}.
! 991: @end table
! 992:
! 993: @comment --- ここで関数の詳しい説明 ---
! 994: @comment --- @itemize〜@end itemize は箇条書き ---
! 995: @comment --- @bullet は黒点付き ---
! 996: @itemize @bullet
! 997: @item
! 998: A maple package IntegrableConnections is available in [BCEW]. In order to use IntegrableConnections, you need to add the global path to the file IntegrableConnections.m to libname on maple. See [BCEW].
! 999: @item
! 1000: If Beta contains unkwon variables, they are regarded as generic parameters. For example, if Beta=[b1,b2,1/5,1/7,b5,...], parameters are [b1,b2,b5,...].
! 1001: @item Options xrule, shift, b_ideal,cg.
! 1002: Same as @code{pfaff_eq}.
! 1003: @item Option filename.
! 1004: You can specify the file name by specifying the option variable filename. If you do not specify it, @code{generate_maple_file_IC} generates a file "auto-generated-IC.ml".
! 1005: @end itemize
! 1006:
! 1007: @comment --- @example〜@end example は実行例の表示 ---
! 1008: Example:
! 1009: @example
! 1010: [2681] Beta=[b1,b2,1/3]$
! 1011: [2682] DirX=[dx1,dx4]$
! 1012: [2683] Rvec=[[1,0,0,0],[0,0,1,0]]$
! 1013: [2684] A=[[1,1,0,0],[0,0,1,1],[0,1,0,1]]$
! 1014: [2685] Ap=[[1,1,0,0],[0,0,1,1],[0,0,0,0]]$
! 1015: [2687] Xrule=[[x2,1],[x3,1]]$
! 1016: [2688] generate_maple_file_IC(A,Beta,Ap,Rvec,DirX|xrule=Xrule,filename="Test.ml")$
! 1017:
! 1018:
! 1019: //A file named Test.ml is automatically generated as follows:
! 1020:
! 1021:
! 1022:
! 1023: with(OreModules);
! 1024: with(IntegrableConnections);
! 1025: with(linalg);
! 1026: C:=[Matrix([[(-2*x1^3*x4^2+4*x1^2*x4-2*x1)/(x1^4*x4^2-2*x1^3*x4+x1^2),
! 1027: (b2*x4)/(x1^2*x4-x1),(-b2*x4)/(x1^2*x4-x1),0],[(b1)/(x1*x4-1),
! 1028: ((b2-4/3)*x1^2*x4^2+(-b1-b2+8/3)*x1*x4+b1-4/3)/(x1^3*x4^2-2*x1^2*x4+x1),0,
! 1029: (-b2*x4)/(x1^2*x4-x1)],[(-b1)/(x1*x4-1),0,
! 1030: ((-b2-2/3)*x1^2*x4^2+(b1+b2+4/3)*x1*x4-b1-2/3)/(x1^3*x4^2-2*x1^2*x4+x1),
! 1031: (b2*x4)/(x1^2*x4-x1)],[0,(-b1)/(x1*x4-1),(b1)/(x1*x4-1),0]]),
! 1032: Matrix([[0,(b2)/(x1*x4-1),(-b2)/(x1*x4-1),0],[(b1*x1)/(x1*x4^2-x4),
! 1033: ((b2-1/3)*x1^2*x4^2+(-b1-b2+2/3)*x1*x4+b1-1/3)/(x1^2*x4^3-2*x1*x4^2+x4),0,
! 1034: (-b2)/(x1*x4-1)],[(-b1*x1)/(x1*x4^2-x4),0,
! 1035: ((-b2+1/3)*x1^2*x4^2+(b1+b2-2/3)*x1*x4-b1+1/3)/(x1^2*x4^3-2*x1*x4^2+x4),
! 1036: (b2)/(x1*x4-1)],[0,(-b1*x1)/(x1*x4^2-x4),(b1*x1)/(x1*x4^2-x4),0]])];
! 1037: RatSols:=RationalSolutions(C,[x1,x4],['param',[b1,b2]]);
! 1038:
! 1039:
! 1040: /*
! 1041: If you run the output file on maple, you obtain a rational solution of
! 1042: the secondary equation.
! 1043: */
! 1044:
! 1045: [b2*(3*b1-1)/(b1*x1^2)]
! 1046: RatSols:=[3*b2/x1 ]
! 1047: [3*b2/x1 ]
! 1048: [3*b2-1 ]
! 1049:
! 1050: /*
! 1051: Note that the 4 entries of this vector correspond to entries of a 2 by 2 matrix.
! 1052: They are aligned as (1,1), (1,2), (2,1) (2,2) from the top.
! 1053: */
! 1054: @end example
! 1055:
! 1056: @*
! 1057:
! 1058: @comment --- 参照(リンク)を書く ---
! 1059: @table @t
! 1060: @item Refer to
! 1061: @ref{mt_gkz.pfaff_eq}
! 1062: @end table
! 1063: @comment おわり.
! 1064:
! 1065:
! 1066:
! 1067:
! 1068:
! 1069:
! 1070:
! 1071:
! 1072: @node mt_gkz.generate_maple_file_MR,,, Secondary equation
! 1073: @subsection @code{mt_gkz.generate_maple_file_MR}
! 1074: @comment --- 索引用キーワード
! 1075: @findex mt_gkz.generate_maple_file_MR
! 1076:
! 1077: @table @t
! 1078: @item mt_gkz.generate_maple_file_MR(@var{A},@var{Beta},@var{Ap},@var{Rvec},@var{DirX},@var{D1},@var{D2})
! 1079: :: It returns the maple input for a solver of a Pfaffian system MorphismsRat[OreMorphisms].
! 1080: @end table
! 1081:
! 1082: @comment --- 引数の簡単な説明 ---
! 1083: @table @var
! 1084: @item return
! 1085: a maple input file for the function MorphismsRat[OreMorphisms] (cf. [CQ]) for the Pfaffian system obtained by @code{secondary_eq}. If you run the output file on maple, you obtain a rational solution of the secondary equation.
! 1086: @item A,Beta,Ap,Rvec,DirX
! 1087: see @code{pfaff_eq}.
! 1088: @item D1,D2
! 1089: Positive integers. D1 (resp. D2) is the upper bound of the degree of the numerator (resp. denominator) of the solution.
! 1090: @end table
! 1091:
! 1092: @comment --- ここで関数の詳しい説明 ---
! 1093: @comment --- @itemize〜@end itemize は箇条書き ---
! 1094: @comment --- @bullet は黒点付き ---
! 1095: @itemize @bullet
! 1096: @item
! 1097: We use the same notation as the explanation of @code{generate_maple_file_IC}. Let @math{D} denote the ring of linear differential operators with coeffiecients in the field of rational functions. We consider @math{D}-modules @math{R:=D^{1\times l}/\sum_{dx_i\in DirX}D^{1\times l}(\partial_i E-P_i)} and @math{S:=D^{1\times l}/\sum_{dx_i\in DirX}D^{1\times l}(\partial_i E+Q_i^T)} where @math{l=}length(Rvec). Then, computing a rational solution of the secondary equation is equivalent to computing a @math{D}-morphism from @math{R} to @math{S} represented by rational function matrix (cf. pp12-13 of [CQ08]).
! 1098: @item
! 1099: A maple package OreMorphisms is available in [CQ]. In order to use OreMorphisms, you need to add the global path to the file OreMorphisms.m to libname on maple.
! 1100: @item Options xrule, shift, b_ideal,cg.
! 1101: Same as @code{pfaff_eq}.
! 1102: @item Option filename.
! 1103: You can specify the file name as in @code{generate_maple_file_IC}.
! 1104: @item
! 1105: The difference between @code{generate_maple_file_IC} and @code{generate_maple_file_MR} is the appearence of auxilliary variables D1 and D2. If you can guess the degree of the numerator and the denominator of the solution of the secondary equation, MorphismsRat[OreMorphisms] can be faster than RationalSolutions[IntegrableConnections].
! 1106: @end itemize
! 1107:
! 1108: @comment --- @example〜@end example は実行例の表示 ---
! 1109: Example:
! 1110: @example
! 1111: [2668] Beta=[b1,b2,1/3]$
! 1112: [2669] DirX=[dx1,dx4]$
! 1113: [2670] Rvec=[[1,0,0,0],[0,0,1,0]]$
! 1114: [2671] A=[[1,1,0,0],[0,0,1,1],[0,1,0,1]]$
! 1115: [2672] Ap=[[1,1,0,0],[0,0,1,1],[0,0,0,0]]$
! 1116: [2673] Xvar=[x1,x4]$
! 1117: [2674] Xrule=[[x2,1],[x3,1]]$
! 1118: [2675] generate_maple_file_MR(A,Beta,Ap,Rvec,DirX,2,2|xrule=Xrule)$
! 1119:
! 1120:
! 1121: //A file "auto-generated-MR.ml" is automatically generated as follows:
! 1122:
! 1123:
! 1124: with(OreModules);
! 1125: with(OreMorphisms);
! 1126: with(linalg);
! 1127: Alg:=DefineOreAlgebra(diff=[dx1,x1],diff=[dx4,x4],polynom=[x1,x4],comm=[b1,b2]);
! 1128: P:=Matrix([[dx1,0],[0,dx1],[dx4,0],[0,dx4]])
! 1129: -Matrix([[((b1+b2-4/3)*x1*x4-b1+4/3)/(x1^2*x4-x1),(-b2*x4)/(x1^2*x4-x1)],
! 1130: [(-b1)/(x1*x4-1),(b1*x4)/(x1*x4-1)],[(b2*x1)/(x1*x4-1),(-b2)/(x1*x4-1)],
! 1131: [(-b1*x1)/(x1*x4^2-x4),(1/3*x1*x4+b1-1/3)/(x1*x4^2-x4)]]);
! 1132: Q:=Matrix([[dx1,0],[0,dx1],[dx4,0],[0,dx4]])
! 1133: +Matrix([[((-b1-b2-2/3)*x1*x4+b1+2/3)/(x1^2*x4-x1),(b1)/(x1*x4-1)],
! 1134: [(b2*x4)/(x1^2*x4-x1),(-b1*x4)/(x1*x4-1)],[(-b2*x1)/(x1*x4-1),(b1*x1)/(x1*x4^2-x4)],
! 1135: [(b2)/(x1*x4-1),(-1/3*x1*x4-b1+1/3)/(x1*x4^2-x4)]]);
! 1136: RatSols:=MorphismsRat(P,Q,Alg,0,2,2);
! 1137:
! 1138: /*
! 1139: If you run the output file on maple, you obtain a vector RatSols.
! 1140: RatSols[1] is the rational solution of the secondary equation:
! 1141: */
! 1142:
! 1143: RatSols[1]:=[(1/3)*@math{n_{2_{1_{3_1}}}}*(3*b1-1)/(b1*x1^2*@math{d_{6_1}}) @math{n_{2_{1_{3_1}}}}/(x1*@math{d_{6_1}})]
! 1144: [@math{n_{2_{1_{3_1}}}}/(x1*@math{d_{6_1}}) (1/3)*@math{n_{2_{1_{3_1}}}}*(3*b2-1)/(b2*@math{d_{6_1}})]
! 1145:
! 1146: /*
! 1147: Here, @math{n_{2_{1_{3_1}}}} and @math{d_{6_1}} are arbitrary constants. We can take @math{n_{2_{1_{3_1}}}=3*b2} and @math{d_{6_1}=1} to obtain the rational solution of the secondary equation which is identical to the one obtained from @code{generate_maple_file_IC}.
! 1148: */
! 1149: @end example
! 1150:
! 1151: @*
! 1152:
! 1153: @comment --- 参照(リンク)を書く ---
! 1154: @table @t
! 1155: @item Refer to
! 1156: @ref{mt_gkz.pfaff_eq}, @ref{mt_gkz.generate_maple_file_IC}.
! 1157: @end table
! 1158: @comment おわり.
! 1159:
! 1160:
! 1161:
! 1162:
! 1163:
! 1164:
! 1165:
! 1166:
! 1167:
! 1168:
! 1169:
! 1170:
! 1171: @node Normalizing constant,,, Cohomology intersection numbers
! 1172: @section Normalizing the cohomology intersection matrix
! 1173:
! 1174:
! 1175: @node mt_gkz.principal_normalizing_constant,,, Normalizing constant
! 1176: @subsection @code{mt_gkz.principal_normalizing_constant}
! 1177: @comment --- 索引用キーワード
! 1178: @findex mt_gkz.principal_normalizing_constant
! 1179:
! 1180: @table @t
! 1181: @item mt_gkz.principal_normalizing_constant(@var{A},@var{T},@var{Beta},@var{K})
! 1182: :: It returns the normalizing constant of the cohomology intersection matrix in terms of a regular triangulation T.
! 1183: @end table
! 1184:
! 1185: @comment --- 引数の簡単な説明 ---
! 1186: @table @var
! 1187: @item return
! 1188: a rational function which is the cohomology intersection number @math{{1\over (2\pi\sqrt{-1})^n} \langle[{dx\over x}],[{dx\over x}]\rangle_{ch}} in terms of the regular triangulation T. Here, @math{n} is the number of integration variables and @math{dx\over x} is the volume form @math{{dx_1\over x_1}\wedge\cdots\wedge{dx_n\over x_n}} of the complex @math{n}-torus.
! 1189: @item A,Beta
! 1190: see @code{pfaff_eq}.
! 1191: @item T
! 1192: a regular triangulation of A.
! 1193: @item K
! 1194: The number of polynomial factors in the integrand. see [MT2020].
! 1195: @end table
! 1196:
! 1197: @comment --- ここで関数の詳しい説明 ---
! 1198: @comment --- @itemize〜@end itemize は箇条書き ---
! 1199: @comment --- @bullet は黒点付き ---
! 1200: @itemize @bullet
! 1201: @item
! 1202: This function is useful when the basis of the cohomology group @math{\{\omega_i\}_{i=1}^r} is given so that @math{\omega_1=[{dx\over x}]}.
! 1203: @item
! 1204: @code{leading_term} can be used more generally.
! 1205: @end itemize
! 1206:
! 1207: @comment --- @example〜@end example は実行例の表示 ---
! 1208: Example:
! 1209: @example
! 1210: [2676] A=[[1,1,0,0],[0,0,1,1],[0,1,0,1]]$
! 1211: [2677] Beta=[b1,b2,b3]$
! 1212: [2678] K=2$
! 1213: [2679] T=[[1,2,3],[2,3,4]]$
! 1214: [2680] normalizing_constant(A,T,Beta,K);
! 1215: (-b1-b2)/(b3*b1+b3*b2-b3^2)
! 1216: @end example
! 1217:
! 1218: @comment --- 参照(リンク)を書く ---
! 1219: @table @t
! 1220: @item Refer to
! 1221: @ref{mt_gkz.leading_term}.
! 1222: @end table
! 1223: @comment おわり.
! 1224:
! 1225:
! 1226:
! 1227:
! 1228:
! 1229:
! 1230:
! 1231:
! 1232: @node mt_gkz.leading_term,,, Normalizing constant
! 1233: @subsection @code{mt_gkz.leading_term}
! 1234: @comment --- 索引用キーワード
! 1235: @findex mt_gkz.leading_terms
! 1236:
! 1237: @table @t
! 1238: @item mt_gkz.leading_term(@var{A},@var{Beta},@var{W},@var{Q1},@var{Q2},@var{K},@var{N})
! 1239: :: It returns the W-leading terms of a cohomology intersection number specified by Q1 and Q2 up to W-degree=(minimum W-degree)+N.
! 1240: @end table
! 1241:
! 1242: @comment --- 引数の簡単な説明 ---
! 1243: @table @var
! 1244: @item return
! 1245: a list [[C1,DEG1],[C2,DEG2],...]. Each CI is a rational function depending on Beta times a monomial @math{x^m} in x-variables. DEGI is the W-degree of @math{x^m}. The cohomology intersection number @math{{1\over (2\pi\sqrt{-1})^n} \langle[h^{-q_1^\prime}x^{q_1^{\prime\prime}}{dx\over x}],[h^{-q_2^\prime}x^{q_2^{\prime\prime}}{dx\over x}]\rangle_{ch}} has a Laurent expansion of the form C1+C2+....
! 1246: @item A,Beta
! 1247: see @code{pfaff_eq}.
! 1248: @item W
! 1249: a positive and integral weight vector.
! 1250: @item Q1,Q2
! 1251: @math{Q1=(q_1^\prime,q_1^{\prime\prime})^T}, @math{Q2=(q_2^\prime,q_2^{\prime\prime})^T} are integer vectors. The lengths of @math{q_1^\prime} and @math{q_2^\prime} are both equal to @math{K}.
! 1252: @item K
! 1253: The number of polynomial factors in the integrand. see [MT2020].
! 1254: @item N
! 1255: A positive integer.
! 1256: @end table
! 1257:
! 1258: @comment --- ここで関数の詳しい説明 ---
! 1259: @comment --- @itemize〜@end itemize は箇条書き ---
! 1260: @comment --- @bullet は黒点付き ---
! 1261: @itemize @bullet
! 1262: @item
! 1263: For a monomial @math{x^m=x_1^{m_1}\cdots x_n^{m_n}} and a weight vector @math{W=(w_1,\dots,w_n)}, the W-degree of @math{x^m} is given by the dot product @math{m\cdot W=m_1w_1+\cdots +m_nw_n}.
! 1264: @item
! 1265: The W-leading terms of the cohomology intersection number @math{{1\over (2\pi\sqrt{-1})^n} \langle[h^{-q_1^\prime}x^{q_1^{\prime\prime}}{dx\over x}],[h^{-q_2^\prime}x^{q_2^{\prime\prime}}{dx\over x}]\rangle_{ch}} can be computed by means of Theorem 2.6 of [GM2020]. See also Theorem 3.4.2 of [SST2000].
! 1266: @item
! 1267: If the weight vector is not generic, you will receive an error message such as "WARNING(initial_mon): The weight may not be generic". In this case, the output may be wrong and you should retake a suitable W. To be more precise, W should be chosen from an open cone of the Groebner fan.
! 1268: @item Option xrule.
! 1269: Same as @code{pfaff_eq}.
! 1270: @end itemize
! 1271:
! 1272: @comment --- @example〜@end example は実行例の表示 ---
! 1273: Example:
! 1274: @example
! 1275: [2922] Beta=[b1,b2,1/3];
! 1276: [b1,b2,1/3]
! 1277: [2923] Q=[[1,0,0],[0,1,0]];
! 1278: [[1,0,0],[0,1,0]]
! 1279: [2924] A=[[1,1,0,0],[0,0,1,1],[0,1,0,1]];
! 1280: [[1,1,0,0],[0,0,1,1],[0,1,0,1]]
! 1281: [2925] W=[1,0,0,0];
! 1282: [1,0,0,0]
! 1283: [2926] K=2;
! 1284: 2
! 1285: [2927] N=2;
! 1286: 2
! 1287: [2928] NC=leading_term(A,Beta,W,Q[0],Q[1],K,N|xrule=[[x2,1],[x3,1],[x4,1]])$
! 1288: --snip--
! 1289: [2929] NC;
! 1290: [[(-3)/(x1),-5],[0,-4],[0,-3]]
! 1291:
! 1292:
! 1293: /*
! 1294: This output means that the W-leading term of the (1,2) entry of the cohomology
! 1295: intersection matrix is @math{(-3)/(x1)\times (2\pi\sqrt{-1})}. In view of examples of @code{generate_maple_file_IC} or @code{generate_maple_file_MR}, we can conclude that the cohomology
! 1296: intersection matrix is given by
! 1297: */
! 1298:
! 1299: [-(3*b1-1)/(b1*x1^2) -3/x1 ]
! 1300: [-3/x1 -(3*b2-1)/b2]]
! 1301:
! 1302:
! 1303: //divided by 2@math{\pi\sqrt{-1}}.
! 1304: @end example
! 1305:
! 1306:
! 1307: @comment --- 参照(リンク)を書く ---
! 1308: @table @t
! 1309: @item Refer to
! 1310: @ref{mt_gkz.leading_term}, @ref{mt_gkz.generate_maple_file_IC}, @ref{mt_gkz.generate_maple_file_MR}.
! 1311: @end table
! 1312: @comment おわり.
! 1313:
! 1314:
! 1315:
! 1316:
! 1317:
! 1318: @node mt_gkz.leading_term_rat,,, Normalizing constant
! 1319: @subsection @code{mt_gkz.leading_term_rat}
! 1320: @comment --- 索引用キーワード
! 1321: @findex mt_gkz.leading_term_rat
! 1322:
! 1323: @table @t
! 1324: @item mt_gkz.leading_term_rat(@var{P},@var{W},@var{V})
! 1325: :: It returns the W-leading term of a rational function P depending on variables V.
! 1326: @end table
! 1327:
! 1328: @comment --- 引数の簡単な説明 ---
! 1329: @table @var
! 1330: @item return
! 1331: It returns the W-leading term of a rational function P.
! 1332: @item P
! 1333: a rational function.
! 1334: @item W
! 1335: a weight vector.
! 1336: @item V
! 1337: a list of variables of P.
! 1338: @end table
! 1339:
! 1340: @comment --- ここで関数の詳しい説明 ---
! 1341: @comment --- @itemize〜@end itemize は箇条書き ---
! 1342: @comment --- @bullet は黒点付き ---
! 1343: @itemize @bullet
! 1344: @item
! 1345: This function is supposed to be combined with @code{leading_term} to compute the leading term of a cohomology intersection number.
! 1346: @item
! 1347: If W is chose so that there are several initial terms, you will receive an error message "WARNING(leading_term_rat):The weight vector may not be generic."
! 1348: @end itemize
! 1349:
! 1350:
! 1351: @comment --- 参照(リンク)を書く ---
! 1352: @table @t
! 1353: @item Refer to
! 1354: @ref{mt_gkz.leading_term}.
! 1355: @end table
! 1356: @comment おわり.
! 1357:
! 1358:
! 1359:
! 1360:
! 1361:
! 1362:
! 1363: @node Regular triangulations,,, Cohomology intersection numbers
! 1364: @section Regular triangulations
! 1365:
! 1366: @comment --- 個々の関数の説明 ---
! 1367: @comment --- section 名を正確に ---
! 1368: @node mt_gkz.toric_gen_initial,,, Regular triangulations
! 1369: @node mt_gkz.regular_triangulation,,, Regular triangulations
! 1370: @node mt_gkz.top_standard_pairs,,, Regular triangulations
! 1371: @subsection @code{mt_gkz.toric_gen_initial}, @code{mt_gkz.regular_triangulation}, @code{mt_gkz.top_standard_pairs}
! 1372: @comment --- 索引用キーワード
! 1373: @findex mt_gkz.toric_gen_initial
! 1374: @findex mt_gkz.regular_triangulation
! 1375: @findex mt_gkz.top_standard_pairs
! 1376:
! 1377: @table @t
! 1378: @item mt_gkz.toric_gen_initial(@var{A},@var{W})
! 1379: @item mt_gkz.regular_triangulation(@var{A},@var{W})
! 1380: @item mt_gkz.top_standard_pairs(@var{A},@var{W})
! 1381: :: utility functions for computing ring theoretic invariants: generic initial ideal for the toric ideal specified by the matrix A and a weight W, its associated regular triangulation, and its associated top-dimensional standard pairs.
! 1382: @end table
! 1383:
! 1384: @comment --- 引数の簡単な説明 ---
! 1385: @table @var
! 1386: @item return
! 1387: @code{toric_gen_initial} returns a list [L1,L2] of length 2. L1 is a list of generators of the W-initial ideal of the toric ideal @math{I_A} specified by A. L2 is a list of variables of @math{I_A}.
! 1388: @item return
! 1389: @code{regular_triangulation} returns a list of simplices of a regular triangulation @math{T_W} specified by the weight W.
! 1390: @item return
! 1391: @code{top_standard_pairs} returns a list of the form [[L1,S1],[L2,S2],...]. Each SI is a simplex of @math{T_W}. Each LI is a list of exponents.
! 1392: @item A
! 1393: a configuration matrix.
! 1394: @item W
! 1395: a positive weight vector.
! 1396: @end table
! 1397:
! 1398: @comment --- ここで関数の詳しい説明 ---
! 1399: @comment --- @itemize〜@end itemize は箇条書き ---
! 1400: @comment --- @bullet は黒点付き ---
! 1401: @itemize @bullet
! 1402: @item
! 1403: As for the definition of the standard pair, see Chapter 3 of [SST00].
! 1404: @item
! 1405: We set n=length(A) and set BS1:=@math{\{ 1,2,...,n\}\setminus S1}. Then, each L1[I] is an exponent @math{\bf k} of a top-dimensional standard pair @math{(\partial^{\bf k}_{BS1},S1)}. Here, @math{\bf k} is a list of length n-length(S1) and @math{\partial_{BS1}=(\partial_J)_{J\in BS1}}.
! 1406: @item
! 1407: If the weight vector is not generic, you will receive an error message such as "WARNING(initial_mon): The weight may not be generic". See also @code{leading_term}.
! 1408: @item
! 1409: These functions are utilized in @code{leading_term}.
! 1410: @end itemize
! 1411:
! 1412: @comment --- @example〜@end example は実行例の表示 ---
! 1413: Example: An example of a non-unimodular triangulation and non-trivial standard pairs.
! 1414: @example
! 1415: [3256] A=[[1,1,1,1,1],[0,1,0,2,0],[0,0,1,0,2]];
! 1416: [[1,1,1,1,1],[0,1,0,2,0],[0,0,1,0,2]]
! 1417: [3257] W=[2,0,1,2,2];
! 1418: [2,0,1,2,2]
! 1419: [3258] toric_gen_initial(A,W);
! 1420: --snip--
! 1421: [[x1*x5,x1*x4,x3^2*x4],[x1,x2,x3,x4,x5]]
! 1422: [3259] regular_triangulation(A,W);
! 1423: --snip--
! 1424: [[2,4,5],[2,3,5],[1,2,3]]
! 1425: [3260] top_standard_pairs(A,W);
! 1426: --snip--
! 1427: [[[[0,0],[0,1]],[2,4,5]],[[[0,0]],[2,3,5]],[[[0,0]],[1,2,3]]]
! 1428:
! 1429: /*
! 1430: This means that the regular triangulation of the configuration matrix A is
! 1431: given by @math{T=\{\{2,4,5\},\{2,3,5\},\{1,2,3\}\}}. The normalized volumes of these simplices
! 1432: are 2,1 and 1. Moreover, the top-dimensional standard pairs are
! 1433: @math{(1,\{2,4,5\}),(\partial_3,\{2,4,5\})}, @math{(1,\{2,3,5\})},@math{(1,\{1,2,3\})}.
! 1434: */
! 1435: @end example
! 1436:
! 1437:
! 1438:
! 1439: @comment --- 参照(リンク)を書く ---
! 1440: @table @t
! 1441: @item Refer to
! 1442: @ref{mt_gkz.leading_term}.
! 1443: @end table
! 1444: @comment おわり.
! 1445:
! 1446:
! 1447:
! 1448:
! 1449:
! 1450:
! 1451:
! 1452: @comment --- おまじない ---
! 1453: @node Index,,, Top
! 1454: @unnumbered Index
! 1455: @printindex fn
! 1456: @printindex cp
! 1457: @iftex
! 1458: @vfill @eject
! 1459: @end iftex
! 1460: @summarycontents
! 1461: @contents
! 1462: @bye
! 1463: @comment --- おまじない終り ---
! 1464:
! 1465: @comment *********************************************************
! 1466: @comment ********* template
! 1467: @comment **********************************************************
! 1468: @comment --- 個々の関数の説明 ---
! 1469: @comment --- section 名を正確に ---
! 1470: @node mt_gkz.pfaff_eq,,, Pfaff equation for given cocycles
! 1471: @subsection @code{mt_gkz.pfaff_eq}
! 1472: @comment --- 索引用キーワード
! 1473: @findex mt_gkz.pfaff_eq
! 1474:
! 1475: @table @t
! 1476: @item mt_gkz.pfaff_eq(@var{A},@var{Beta},@var{Ap},@var{Rvec},@var{DirX})
! 1477: :: It returns the Pfaff equation for the GKZ system defined by @var{A} and @var{Beta} with respect to cocycles defined by @var{Rvec}.
! 1478: @end table
! 1479:
! 1480: @comment --- 引数の簡単な説明 ---
! 1481: @table @var
! 1482: @item return
! 1483: a list of coefficients of the Pfaff equation with respect to the direction @var{DirX}
! 1484: @item A
! 1485: the matrix A of the GKZ system.
! 1486: @item Beta
! 1487: ...
! 1488: @end table
! 1489:
! 1490: @comment --- ここで関数の詳しい説明 ---
! 1491: @comment --- @itemize〜@end itemize は箇条書き ---
! 1492: @comment --- @bullet は黒点付き ---
! 1493: @itemize @bullet
! 1494: @item
! 1495: The independent variables are @code{x1,x2,x3,...} (@math{x_1, x_2, x_3, \ldots}).
! 1496: @end itemize
! 1497:
! 1498: @comment --- @example〜@end example は実行例の表示 ---
! 1499: Example: Gauss hypergeometric system, see [GM2020] example ??.
! 1500: @example
! 1501: [1883] import("mt_gkz.rr");
! 1502: @end example
! 1503:
! 1504: @comment --- 参照(リンク)を書く ---
! 1505: @table @t
! 1506: @item Refer to
! 1507: @ref{mt_gkz.pfaff_eq}
! 1508: @end table
! 1509: @comment おわり.
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>