[BACK]Return to complex.texi CVS log [TXT][DIR] Up to [local] / OpenXM / src / k097 / Doc

Annotation of OpenXM/src/k097/Doc/complex.texi, Revision 1.5

1.5     ! takayama    1: %% $OpenXM: OpenXM/src/k097/Doc/complex.texi,v 1.4 2001/01/13 01:17:36 takayama Exp $
1.1       takayama    2:
                      3: /*&ja
                      4:
                      5: @node COMPLEX $BH!?t(B,,, Top
                      6: @chapter COMPLEX $BH!?t(B
                      7: @section $BH!?t0lMw(B
                      8: */
                      9: /*&en
                     10:
                     11: @node COMPLEX function,,, Top
                     12: @chapter COMPLEX function
                     13: @section A list of functions
                     14: */
                     15: /*&C
                     16: @menu
                     17: * Res_solv::
                     18: * Res_solv2::
                     19: * Kernel::
                     20: * Kernel2::
                     21: * Gb::
                     22: * Gb_h::
                     23: * Res_shiftMatrix::
                     24: @end menu
                     25:
                     26: */
                     27:
                     28: /*&ja
                     29: @c %%%%%%%%%%%%%%%%%%%%  start of Res_solv %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                     30: @menu
                     31: * Res_solv::
                     32: @end menu
                     33: @node Res_solv,,, COMPLEX $BH!?t(B
                     34: @subsection @code{Res_solv}
                     35: @findex Res_solv
                     36: @table @t
                     37: @item Res_solv(@var{m},@var{d})
1.3       takayama   38: ::  $B0l<!ITDjJ}Dx<0(B u @var{m} =@var{d} $B$N2r$r$b$H$a$k(B.
1.1       takayama   39: @item Res_solv(@var{m},@var{d},@var{r})
                     40: ::  $B0l<!ITDjJ}Dx<0(B u @var{m} =@var{d} $B$N2r$r$b$H$a$k(B. @var{r} $B$O(B ring.
                     41: @end table
                     42:
                     43: */
                     44: /*&en
                     45: @c %%%%%%%%%%%%%%%%%%%%  start of Res_solv %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                     46: @menu
                     47: * Res_solv::
                     48: @end menu
                     49: @node Res_solv,,, COMPLEX function
                     50: @subsection @code{Res_solv}
                     51: @findex Res_solv
                     52: @table @t
                     53: @item Res_solv(@var{m},@var{d})
                     54: ::  Find a solution u of the linear indefinite equation u @var{m} =@var{d}.
                     55: @item Res_solv(@var{m},@var{d},@var{r})
                     56: ::  Find a solution u of the linear indefinite equation u @var{m} =@var{d}.
                     57: @var{r} is a ring object.
                     58: @end table
                     59:
                     60: */
                     61:
                     62: /*&ja
                     63: @table @var
                     64: @item return
                     65: [c,r] $B$,La$jCM$N$H$-(B c/r $B$,2r(B u ($B2#%Y%/%H%k(B).
                     66: @item m
                     67: $B9TNs$^$?$O%Y%/%H%k(B
                     68: @item d
                     69: $B%Y%/%H%k(B $B$^$?$O%9%+%i!<(B
                     70: @end table
                     71:
                     72: @itemize @bullet
                     73: @item  $B0l<!ITDjJ}Dx<0(B u @var{m} =@var{d} $B$N2r$r$b$H$a$k(B.
                     74: @item  @var{m}, @var{d} $B$N=g$K4D$NDj5A$r8!:w$7(B, $B$=$N4D$HF1$8JQ?t=89g$r(B
                     75: $B$b$DHyJ,:nMQAG4D(B(graded reverse lexicographic order)$B$GITDjJ}Dx<0$r2r$/(B.
                     76: $B4D(B @var{r} $B$,$"$?$($i$l$F$$$k$H$-$O(B, @var{r} $B$HF1$8JQ?t=89g$r$b$D(B
                     77: $BHyJ,:nMQAG4D(B(graded reverse lexicographic order)$B$GITDjJ}Dx<0$r2r$/(B.
                     78: @item @var{m}, @var{d} $B$,Dj?t@.J,$N$H$-$O(B, $B4D(B @var{r} $B$rM?$($kI,MW$,$"$k(B.
                     79: (@var{m}, @var{d} $B$h$j4D$N>pJs$r$H$j$@$;$J$$$?$a(B).
                     80: @end itemize
                     81:
                     82: */
                     83: /*&en
                     84: @table @var
                     85: @item return
                     86: When [c,r] is the return value,  c/r is the solution u.
                     87: @item m
                     88: Matrix or vector
                     89: @item d
                     90: Vector or scalar
                     91: @end table
                     92:
                     93: @itemize @bullet
                     94: @item  Find a solution u of the linear indefinite equation u @var{m} =@var{d}.
                     95: @item It solves the linear indefinite equation in the ring of differential
                     96: operators (with graded reverse lexicographic order) of the same set
                     97: of variables of the ring to which @var{m} or @var{d} belongs.
                     98: When the ring @var{r} is given,
                     99: it solves the linear indefinite equation in the ring of differential
                    100: operators (with graded reverse lexicographic order) of the same set
                    101: of variables of the ring @var{r}.
                    102: @item When @var{m} and @var{d} consist of constants, a ring @var{r}
                    103: should be given.
                    104: @end itemize
                    105:
                    106: */
                    107:
                    108: /*&C
                    109: @example
                    110: In(16)= RingD("x,y");
                    111: In(17)= mm=[Dx,Dy,x];
                    112: In(18)= Res_solv(mm,1):
                    113: [    [    x , 0 , -Dx ]  , -1 ]
                    114: @end example
                    115: */
                    116: /*&ja
                    117: $B$3$l$O(B -x*Dx + 0*Dy+Dx*x = 1 $B$G$"$k$3$H$r<($9(B.
                    118: */
                    119: /*&en
                    120: The output means that  -x*Dx + 0*Dy+Dx*x = 1.
                    121: */
                    122:
                    123: /*&C
                    124: @example
                    125: In(4)=RingD("x");
                    126:      m=[ [x*Dx+2, 0],[Dx+3,x^3],[3,x],[Dx*(x*Dx+3)-(x*Dx+2)*(x*Dx-4),0]];
                    127:      d=[1,0];
                    128:      Res_solv(m,d):
                    129:
                    130: [    [    x^2*Dx-x*Dx-4*x-1 , 0 , 0 , x ]  , -2 ]
                    131: @end example
                    132: */
                    133: /*&ja
                    134: $B$3$l$O(B
                    135: -(1/2)*(x^2*Dx-x*Dx-4*x-1)*[x*Dx+2, 0]-(1/2)*[Dx*(x*Dx+3)-(x*Dx+2)*(x*Dx-4),0]
                    136: = [1,0]
                    137: $B$G$"$k$3$H$r<($9(B.
                    138: */
                    139: /*&en
                    140: The output implies that
                    141: -(1/2)*(x^2*Dx-x*Dx-4*x-1)*[x*Dx+2, 0]-(1/2)*[Dx*(x*Dx+3)-(x*Dx+2)*(x*Dx-4),0]
                    142: = [1,0]
                    143: */
                    144:
                    145: /*&C
                    146:
                    147: @example
                    148:
                    149: In(4)= r=RingD("x,y");
                    150: In(5)= Res_solv([[1,2],[3,4]],[5,0],r):
                    151: [    [    10 , -5 ]  , -1 ]
                    152:
                    153: @end example
                    154:
                    155:
                    156: */
                    157:
                    158:
                    159: /*&ja
                    160:
                    161: @table @t
                    162: @item $B;2>H(B
                    163:     @code{Res_solv_h}, @code{Kernel},  @code{GetRing}, @code{SetRing}.
1.3       takayama  164: @item Files
                    165:     @code{lib/restriction/complex.k}
1.1       takayama  166: @end table
                    167: @c  %%%%%%%%%%%%%%%%%%%%  end of Res_solv %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    168: */
                    169: /*&en
                    170:
                    171: @table @t
1.3       takayama  172: @item See also
1.1       takayama  173:     @code{Res_solv_h}, @code{Kernel},  @code{GetRing}, @code{SetRing}.
1.3       takayama  174: @item Files
                    175:     @code{lib/restriction/complex.k}
1.1       takayama  176: @end table
                    177: @c  %%%%%%%%%%%%%%%%%%%%  end of Res_solv %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    178: */
                    179:
                    180: /*&ja
                    181: @c %%%%%%%%%%%%%%%%%%%%  start of Res_solv2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    182: @menu
                    183: * Res_solv2::
                    184: @end menu
                    185: @node Res_solv2,,, COMPLEX $BH!?t(B
                    186: @subsection @code{Res_solv2}
                    187: @findex Res_solv2
                    188: @table @t
                    189: @item Res_solv2(@var{m},@var{v},@var{j})
1.3       takayama  190: ::  $B0l<!ITDjJ}Dx<0(B u @var{m} =@var{v} mod @var{j} $B$N2r$r$b$H$a$k(B.
1.1       takayama  191: @item Res_solv2(@var{m},@var{v},@var{j},@var{r})
                    192: ::  $B0l<!ITDjJ}Dx<0(B u @var{m} =@var{v} mod @var{j} $B$N2r$r$b$H$a$k(B.
                    193: @var{r} $B$O(B ring.
                    194: @end table
                    195:
                    196: */
                    197: /*&en
                    198: @c %%%%%%%%%%%%%%%%%%%%  start of Res_solv2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    199: @menu
                    200: * Res_solv2::
                    201: @end menu
                    202: @node Res_solv2,,, COMPLEX function
                    203: @subsection @code{Res_solv2}
                    204: @findex Res_solv2
                    205: @table @t
                    206: @item Res_solv2(@var{m},@var{v},@var{j})
                    207: ::  Find a solution u of the linear indefinite equation u @var{m} =@var{v}
1.3       takayama  208:     mod @var{j}.
1.1       takayama  209: @item Res_solv2(@var{m},@var{v},@var{j},@var{r})
                    210: ::  Find a solution u of the linear indefinite equation u @var{m} =@var{v}
                    211: mod @var{j}.
                    212: @var{r} is a ring object.
                    213: @end table
                    214:
                    215: */
                    216:
                    217: /*&ja
                    218: @table @var
                    219: @item return
                    220: [c,r] $B$,La$jCM$N$H$-(B c/r $B$,2r(B u ($B2#%Y%/%H%k(B).
                    221: @item m
                    222: $B9TNs$^$?$O%Y%/%H%k(B
                    223: @item v  j
                    224: $B%Y%/%H%k(B $B$^$?$O%9%+%i!<(B
                    225: @end table
                    226:
                    227: @itemize @bullet
                    228: @item  $B0l<!ITDjJ}Dx<0(B u @var{m} =@var{v} mod @var{j} $B$N2r$r$b$H$a$k(B.
                    229: @item $B$3$l$O(B, @var{m} $B$r(B
                    230:  @var{m} :  D^p ---> D^q/@var{j}
                    231: $B$J$k:8(B D homomorphism $B$H$_$J$9$H$-(B,
                    232: @var{m}^(-1)(@var{v}) $B$r5a$a$k$3$H$KAjEv$9$k(B.
                    233: @item  @var{m}, @var{v} $B$N=g$K4D$NDj5A$r8!:w$7(B, $B$=$N4D$HF1$8JQ?t=89g$r(B
                    234: $B$b$DHyJ,:nMQAG4D(B(graded reverse lexicographic order)$B$GITDjJ}Dx<0$r2r$/(B.
                    235: $B4D(B @var{r} $B$,$"$?$($i$l$F$$$k$H$-$O(B, @var{r} $B$HF1$8JQ?t=89g$r$b$D(B
                    236: $BHyJ,:nMQAG4D(B(graded reverse lexicographic order)$B$GITDjJ}Dx<0$r2r$/(B.
                    237: @item @var{m}, @var{v} $B$,Dj?t@.J,$N$H$-$O(B, $B4D(B @var{r} $B$rM?$($kI,MW$,$"$k(B.
                    238: (@var{m}, @var{v} $B$h$j4D$N>pJs$r$H$j$@$;$J$$$?$a(B).
                    239: @end itemize
                    240:
                    241: */
                    242: /*&en
                    243: @table @var
                    244: @item return
                    245: When [c,r] is the return value,  c/r is the solution u.
                    246: @item m
                    247: Matrix or vector
                    248: @item v j
                    249: Vector or scalar
                    250: @end table
                    251:
                    252: @itemize @bullet
                    253: @item  Find a solution u of the linear indefinite equation u @var{m} =@var{v}
                    254: mod @var{j}.
                    255: @item Let  @var{m} be the left D-homomorphism
                    256:  @var{m} :  D^p ---> D^q/@var{j}.
                    257: The function returns an element in
                    258: @var{m}^(-1)(@var{v}).
                    259: @item It solves the linear indefinite equation in the ring of differential
                    260: operators (with graded reverse lexicographic order) of the same set
                    261: of variables of the ring to which @var{m} or @var{v} belongs.
                    262: When the ring @var{r} is given,
                    263: it solves the linear indefinite equation in the ring of differential
                    264: operators (with graded reverse lexicographic order) of the same set
                    265: of variables of the ring @var{r}.
                    266: @item When @var{m} and @var{v} consist of constants, a ring @var{r}
                    267: should be given.
                    268: @end itemize
                    269:
                    270: */
                    271:
                    272: /*&C
                    273: @example
                    274: In(28)= r=RingD("x,y");
                    275: In(29)= Res_solv2([x,y],[x^2+y^2],[x]):
                    276: [    [    0 , y ]  , 1 ]
                    277:
                    278: @end example
                    279: */
                    280: /*&ja
                    281: $B$3$l$O(B 0*x + y*y = x^2+y^2 mod x $B$G$"$k$3$H$r<($9(B.
                    282: */
                    283: /*&en
                    284: The output means that  0*x + y*y = x^2+y^2 mod x
                    285: */
                    286:
                    287: /*&C
                    288: @example
                    289:
                    290: In(32)= Res_solv2([x,y],[x^2+y^2],[],r):
                    291: [    [    x , y ]  , 1 ]
                    292:
                    293:
                    294: @end example
                    295: */
                    296: /*&ja
                    297: $B$3$l$O(B
                    298:   x*x + y*y = x^2+y^2
                    299: $B$G$"$k$3$H$r<($9(B.
                    300: */
                    301: /*&en
                    302: The output implies that
                    303:   x*x + y*y = x^2+y^2.
                    304: */
                    305:
                    306:
                    307:
                    308: /*&ja
                    309:
                    310: @table @t
                    311: @item $B;2>H(B
                    312:     @code{Res_solv2_h}, @code{Kernel2},  @code{GetRing}, @code{SetRing}.
1.3       takayama  313: @item Files
                    314:     @code{lib/restriction/complex.k}
1.1       takayama  315: @end table
                    316: @c  %%%%%%%%%%%%%%%%%%%%  end of Res_solv2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    317: */
                    318: /*&en
                    319:
                    320: @table @t
1.3       takayama  321: @item See also
1.1       takayama  322:     @code{Res_solv2_h}, @code{Kernel2},  @code{GetRing}, @code{SetRing}.
1.3       takayama  323: @item Files
                    324:     @code{lib/restriction/complex.k}
1.1       takayama  325: @end table
                    326: @c  %%%%%%%%%%%%%%%%%%%%  end of Res_solv2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    327: */
                    328:
                    329:
                    330: /*&ja
                    331: @c %%%%%%%%%%%%%%%%%%%%  start of Kernel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    332: @c Kernel $B$O(B minimal.k $B$K$"$k$,(B complex.k $B$J$I$K0\F0$9$Y$-(B.
                    333: @menu
                    334: * Kernel::
                    335: @end menu
                    336: @node Kernel,,, COMPLEX $BH!?t(B
                    337: @subsection @code{Kernel}
                    338: @findex Kernel
                    339: @table @t
                    340: @item Kernel(@var{m})
                    341: ::  $B0l<!ITDjJ}Dx<0(B u @var{m} =0 $B$N2r6u4V$N4pDl$r5a$a$k(B.
                    342: @item Kernel(@var{m},@var{r})
                    343: ::  $B0l<!ITDjJ}Dx<0(B u @var{m} =0 $B$N2r6u4V$N4pDl$r5a$a$k(B. @var{r} $B$O(B ring.
                    344: @end table
                    345:
                    346: */
                    347: /*&en
                    348: @c %%%%%%%%%%%%%%%%%%%%  start of Kernel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    349: @menu
                    350: * Kernel::
                    351: @end menu
                    352: @node Kernel,,, COMPLEX function
                    353: @subsection @code{Kernel}
                    354: @findex Kernel
                    355: @table @t
                    356: @item Kernel(@var{m})
                    357: ::  Find solution basis of the linear indefinite equation u @var{m} =0.
                    358: @item Kernel(@var{m},@var{r})
                    359: ::  Find solution basis of the linear indefinite equation u @var{m} =0.
                    360: @var{r} is a ring object.
                    361: @end table
                    362:
                    363: */
                    364:
                    365: /*&ja
                    366: @table @var
                    367: @item return
                    368: $B%j%9%H(B
                    369: @item m
                    370: $B9TNs$^$?$O%Y%/%H%k(B
                    371: @end table
                    372:
                    373: @itemize @bullet
                    374: @item  $B0l<!ITDjJ}Dx<0(B u @var{m} =0 $B$N2r6u4V$N4pDl$r5a$a$k(B.
                    375: @item $BLa$jCM$r(B k $B$H$9$k$H$-(B k[0] $B$,(B $B2r6u4V$N4pDl$N=89g(B.
                    376: k[1] $B$O(B [gb, backward transformation, syzygy without dehomogenization].
                    377: @item  @var{m} $B$h$j4D$NDj5A$r8!:w$7(B, $B$=$N4D$G%+!<%M%k$r7W;;$9$k(B.
                    378: $B4D(B @var{r} $B$,$"$?$($i$l$F$$$k$H$-$O(B, @var{r} $B$G%+!<%M%k$r7W;;$9$k(B.
                    379: @item @var{m} $B$,Dj?t@.J,$N$H$-$O(B, $B4D(B @var{r} $B$rM?$($kI,MW$,$"$k(B.
                    380: (@var{m} $B$h$j4D$N>pJs$r$H$j$@$;$J$$$?$a(B).
                    381: @item BUG:  Kernel $B$*$h$S(B Res_solv (syz, res-solv) $B$N$_$,(B, $B4D0z?t$K(B
                    382: $BBP1~$7$F$k(B. (2000, 12/29 $B8=:_(B).
                    383: @end itemize
                    384:
                    385: */
                    386: /*&en
                    387: @table @var
                    388: @item return
                    389: List
                    390: @item m
                    391: Matrix or vector
                    392: @end table
                    393:
                    394: @itemize @bullet
                    395: @item  Find solution basis of the linear indefinite equation u @var{m} =0.
                    396: @item When the return value is  k, k[0] is a set of generators of the kernel.
                    397: k[1] is [gb, backward transformation, syzygy without dehomogenization].
                    398: @item It finds the kernel in the ring
                    399: to which @var{m} belongs.
                    400: When the ring @var{r} is given,
                    401: it finds the kernel in the ring @var{r}.
                    402: @item When @var{m} consists of constants, a ring @var{r}
                    403: should be given.
                    404: @end itemize
                    405:
                    406: */
                    407:
                    408: /*&C
                    409: @example
                    410: In(16)= RingD("x,y");
                    411: In(17)= mm=[[Dx],[Dy],[x]];
                    412: In(18)= Pmat(Kernel(mm));
                    413:  [
                    414:   [
                    415:     [    -x*Dx-2 , 0 , Dx^2 ]
                    416:     [    -x*Dy , -1 , Dx*Dy ]
                    417:     [    -x^2 , 0 , x*Dx-1 ]
                    418:   ]
                    419:   [
                    420:    [
                    421:      [    -1 ]
                    422:    ]
                    423:    [
                    424:      [    x , 0 , -Dx ]
                    425:    ]
                    426:    [
                    427:      [    -x*Dx-2 , 0 , Dx^2 ]
                    428:      [    -x*Dy , -1 , Dx*Dy ]
                    429:      [    -x^2 , 0 , x*Dx-1 ]
                    430:    ]
                    431:   ]
                    432:  ]
                    433:
                    434: @end example
                    435: */
                    436:
                    437:
                    438: /*&C
                    439:
                    440: @example
                    441:
                    442: In(4)= r=RingD("x,y");
                    443: In(5)= k=Kernel([[1,2],[2,4]],r); k[0]:
                    444: [    [    2 , -1 ]  ]
                    445: @end example
                    446:
                    447:
                    448: */
                    449:
                    450:
                    451: /*&ja
                    452:
                    453: @table @t
                    454: @item $B;2>H(B
                    455:     @code{Kernel_h}, @code{Res_solv}, @code{GetRing}, @code{SetRing}.
1.3       takayama  456: @item Files
                    457:     @code{lib/restriction/complex.k}
1.1       takayama  458: @end table
                    459: @c  %%%%%%%%%%%%%%%%%%%%  end of Kernel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    460: */
                    461: /*&en
                    462:
                    463: @table @t
1.3       takayama  464: @item See also
1.1       takayama  465:     @code{Kernel_h}, @code{Res_solv},  @code{GetRing}, @code{SetRing}.
1.3       takayama  466: @item Files
                    467:     @code{lib/restriction/complex.k}
1.1       takayama  468: @end table
                    469: @c  %%%%%%%%%%%%%%%%%%%%  end of Kernel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    470: */
                    471: /*&ja
                    472: @c %%%%%%%%%%%%%%%%%%%%  start of Kernel2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    473: @menu
                    474: * Kernel2::
                    475: @end menu
                    476: @node Kernel2,,, COMPLEX $BH!?t(B
                    477: @subsection @code{Kernel2}
                    478: @findex Kernel2
                    479: @table @t
                    480: @item Kernel2(@var{m},@var{j})
                    481: ::  @var{m} : D^p ---> D^q/@var{j} $B$N(B Kernel $B$r5a$a$k(B.
                    482: @item Kernel2(@var{m},@var{j},@var{r})
                    483: ::  @var{m} : D^p ---> D^q/@var{j} $B$N(B Kernel $B$r5a$a$k(B. @var{r} $B$O(B ring.
                    484: @end table
                    485:
                    486: */
                    487: /*&en
                    488: @c %%%%%%%%%%%%%%%%%%%%  start of Kernel2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    489: @menu
                    490: * Kernel2::
                    491: @end menu
                    492: @node Kernel2,,, COMPLEX function
                    493: @subsection @code{Kernel2}
                    494: @findex Kernel2
                    495: @table @t
                    496: @item Kernel2(@var{m})
                    497: ::  Get the kernel of @var{m} : D^p ---> D^q/@var{j}.
                    498: @item Kernel2(@var{m},@var{r})
                    499: ::   Get the kernel of @var{m} : D^p ---> D^q/@var{j}.
                    500: @var{r} is a ring object.
                    501: @end table
                    502:
                    503: */
                    504:
                    505: /*&ja
                    506: @table @var
                    507: @item return
                    508: $B%j%9%H(B
                    509: @item m  j
                    510: $B9TNs$^$?$O%Y%/%H%k(B
                    511: @end table
                    512:
                    513: @itemize @bullet
                    514: @item @var{m} : D^p ---> D^q/@var{j} $B$N(B Kernel $B$r5a$a$k(B.
                    515: @item D^p $B$O2#%Y%/%H%k$G$"$j(B, u $B$,(B D^p $B$N85$N$H$-(B,
                    516:     u @var{m} $B$G<LA|$rDj5A$9$k(B.
                    517: @item  @var{m} $B$h$j4D$NDj5A$r8!:w$7(B, $B$=$N4D$G%+!<%M%k$r7W;;$9$k(B.
                    518: $B4D(B @var{r} $B$,$"$?$($i$l$F$$$k$H$-$O(B, @var{r} $B$G%+!<%M%k$r7W;;$9$k(B.
                    519: @item @var{m} $B$,Dj?t@.J,$N$H$-$O(B, $B4D(B @var{r} $B$rM?$($kI,MW$,$"$k(B.
                    520: (@var{m} $B$h$j4D$N>pJs$r$H$j$@$;$J$$$?$a(B).
                    521: @end itemize
                    522:
                    523: */
                    524: /*&en
                    525: @table @var
                    526: @item return
                    527: List
                    528: @item m  j
                    529: Matrix or vector
                    530: @end table
                    531:
                    532: @itemize @bullet
                    533: @item Get a set of generators of the the kernel
                    534: of @var{m} : D^p ---> D^q/@var{j}.
                    535: @item D^p is a set of row vectors. When u is an element of D^p,
                    536: define the map from D^p to D^q/@var{j} by u @var{m}.
                    537: @item It finds the kernel in the ring
                    538: to which @var{m} belongs.
                    539: When the ring @var{r} is given,
                    540: it finds the kernel in the ring @var{r}.
                    541: @item When @var{m} consists of constants, a ring @var{r}
                    542: should be given.
                    543: @end itemize
                    544:
                    545: */
                    546:
                    547: /*&C
                    548: @example
                    549: In(27)= r=RingD("x,y");
                    550: In(28)= Kernel2([[x,y],[x^2,x*y]],[]):
                    551: [    [    -x , 1 ]  ]
                    552: In(29)=Kernel2([[x,y],[x^2,x*y]],[[x,y]]):
                    553: [    [    1 , 0 ]  , [    0 , 1 ]  ]
                    554:
                    555: In(41)=Kernel2([0],[0],r):
                    556: [    [    1 ]  , [    0 ]  ]
                    557: In(42)=Kernel2([[0,0],[0,0]],[[0,0]],r):
                    558: [    [    1 , 0 ]  , [    0 , 1 ]  , [    0 , 0 ]  ]
                    559: In(43)=Kernel2([[0,0,0],[0,0,0]],[],r):
                    560: [    [    1 , 0 ]  , [    0 , 1 ]  ]
                    561:
                    562: @end example
                    563: */
                    564:
                    565:
                    566: /*&ja
                    567:
                    568: @table @t
                    569: @item $B;2>H(B
                    570:     @code{Kernel2_h}, @code{Res_solv2}, @code{GetRing}, @code{SetRing},
                    571:     @code{Kernel}.
1.3       takayama  572: @item Files
                    573:     @code{lib/restriction/complex.k}
1.1       takayama  574: @end table
                    575: @c  %%%%%%%%%%%%%%%%%%%%  end of Kernel2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    576: */
                    577: /*&en
                    578:
                    579: @table @t
1.3       takayama  580: @item See also
1.1       takayama  581:     @code{Kernel2_h}, @code{Res_solv2},  @code{GetRing}, @code{SetRing},
                    582:     @code{Kernel}
1.3       takayama  583: @item Files
                    584:     @code{lib/restriction/complex.k}
1.1       takayama  585: @end table
                    586: @c  %%%%%%%%%%%%%%%%%%%%  end of Kernel2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    587: */
                    588:
                    589: /*&ja
                    590: @c %%%%%%%%%%%%%%%%%%%%  start of Gb %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    591: @menu
                    592: * Gb::
                    593: @end menu
                    594: @node Gb,,, COMPLEX $BH!?t(B
                    595: @node Gb_h,,, COMPLEX $BH!?t(B
                    596: @subsection @code{Gb}
                    597: @findex Gb
                    598: @findex Gb_h
                    599: @table @t
                    600: @item Gb(@var{f})
                    601: ::  @var{f} $B$N%0%l%V%J4pDl$r$b$H$a$k(B.
                    602: @item Gb(@var{f},@var{r})
                    603: ::  @var{f} $B$N%0%l%V%J4pDl$r$b$H$a$k(B. @var{r} $B$O(B ring.
                    604: @item Gb_h(@var{f})
                    605: ::  @var{f} $B$N%0%l%V%J4pDl$r$b$H$a$k(B.
                    606: @item Gb_h(@var{f},@var{r})
                    607: ::  @var{f} $B$N%0%l%V%J4pDl$r$b$H$a$k(B. @var{r} $B$O(B ring.
                    608: @end table
                    609:
                    610: */
                    611: /*&en
                    612: @c %%%%%%%%%%%%%%%%%%%%  start of Gb %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    613: @menu
                    614: * Gb::
                    615: @end menu
                    616: @node Gb,,, COMPLEX function
                    617: @node Gb_h,,, COMPLEX function
                    618: @subsection @code{Gb}
                    619: @findex Gb
                    620: @table @t
                    621: @item Gb(@var{f})
                    622: ::  It computes the Grobner basis of @var{f}.
                    623: @item Gb(@var{m},@var{r})
                    624: ::  It computes the Grobner basis of @var{f}.
                    625: @var{r} is a ring object.
                    626: @item Gb_h(@var{f})
                    627: ::  It computes the Grobner basis of @var{f}.
                    628: @item Gb_h(@var{m},@var{r})
                    629: ::  It computes the Grobner basis of @var{f}.
                    630: @var{r} is a ring object.
                    631: @end table
                    632:
                    633: */
                    634:
                    635: /*&ja
                    636: @table @var
                    637: @item return
                    638: $B%j%9%H(B
                    639: @item f
                    640: $B9TNs$^$?$O%Y%/%H%k(B
                    641: @end table
                    642:
                    643: @itemize @bullet
                    644: @item  @var{f} $B$N%0%l%V%J4pDl$r$b$H$a$k(B.
                    645: @item _h $BIU$-$N>l9g$O(B, $BF1<!%o%$%kBe?t$G7W;;$r$*$3$J$&(B.
                    646: @item $BLa$jCM$r(B k $B$H$9$k$H$-(B k[0] $B$,(B $B%0%l%V%J4pDl(B.
                    647: $B4D$,(B weight vector $BIU$-$GDj5A$5$l$?$H$-$O(B,
                    648: k[1] $B$O(B initial ideal $B$^$?$O(B initial module.
                    649: @item  @var{m} $B$h$j4D$NDj5A$r8!:w$7(B, $B$=$N4D$G%0%l%V%J4pDl$r7W;;$9$k(B.
                    650: $B4D(B @var{r} $B$,$"$?$($i$l$F$$$k$H$-$O(B, @var{r} $B$G%0%l%V%J4pDl$r7W;;$9$k(B.
                    651: @item @var{m} $B$,Dj?t@.J,$N$H$-$O(B, $B4D(B @var{r} $B$rM?$($kI,MW$,$"$k(B.
                    652: (@var{m} $B$h$j4D$N>pJs$r$H$j$@$;$J$$$?$a(B).
                    653: @end itemize
                    654:
                    655: */
                    656: /*&en
                    657: @table @var
                    658: @item return
                    659: List
                    660: @item f
                    661: Matrix or vector
                    662: @end table
                    663:
                    664: @itemize @bullet
                    665: @item  Compute the Grobner basis of @var{f}.
                    666: @item Functions with _h  computes Grobner bases in the homogenized Weyl
                    667: algebra.
                    668: @item When the return value is  k, k[0] is the Grobner basis.
                    669: k[1] is the initial ideal or the initial module of @var{f},
                    670: when the ring is defined with a weight vector.
                    671: @item It computes the Grobner basis in the ring
                    672: to which @var{f} belongs.
                    673: When the ring @var{r} is given,
                    674: it computes the Grobner basis in the ring @var{r}.
                    675: @item When @var{f} consists of constants, a ring @var{r}
                    676: should be given.
                    677: @end itemize
                    678:
                    679: */
                    680:
                    681: /*&C
                    682: @example
                    683: In(5)= r=RingD("x,y");
                    684: In(6)= m=[[x^2+y^2-1],[x*y-1]];
                    685: In(7)= Gb(m):
                    686: [    [    [    x^2+y^2-1 ]  , [    x*y-1 ]  , [    y^3+x-y ]  ]  ,
                    687: [    [    x^2+y^2-1 ]  , [    x*y-1 ]  , [    y^3+x-y ]  ]  ]
                    688:
                    689: In(11)= RingD("x,y",[["x",1]]);
                    690: In(12)= r=RingD("x,y",[["x",1]]);
                    691: In(13)= Gb(m,r):
                    692: [    [    [    x+y^3-y ]  , [    -y^4+y^2-1 ]  ]  ,
                    693: [    [    x ]  , [    -y^4+y^2-1 ]  ]  ]
                    694:
                    695: @end example
                    696: */
                    697:
                    698:
                    699: /*&ja
                    700:
                    701: @table @t
                    702: @item $B;2>H(B
                    703:     @code{Gb_h}, @code{Kernel}, @code{Res_solv}, @code{RingD},
                    704:     @code{GetRing}, @code{SetRing}.
1.3       takayama  705: @item Files
                    706:     @code{lib/restriction/complex.k}
1.1       takayama  707: @end table
                    708: @c  %%%%%%%%%%%%%%%%%%%%  end of Gb %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    709: */
                    710: /*&en
                    711:
                    712: @table @t
1.3       takayama  713: @item See also
1.1       takayama  714:     @code{Gb_h}, @code{Kernel}, @code{Res_solv}, @code{RingD},
                    715:     @code{GetRing}, @code{SetRing}.
1.3       takayama  716: @item Files
                    717:     @code{lib/restriction/complex.k}
1.1       takayama  718: @end table
                    719: @c  %%%%%%%%%%%%%%%%%%%%  end of Gb %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    720: */
                    721:
                    722: /*&ja
                    723: @c %%%%%%%%%%%%%%%%%%%%  start of Res_shiftMatrix %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    724: @menu
                    725: * Res_shiftMatrix::
                    726: @end menu
                    727: @node Res_shiftMatrix,,, COMPLEX $BH!?t(B
                    728: @subsection @code{Res_shiftMatrix}
                    729: @findex Res_shiftMatrix
                    730: @table @t
                    731: @item Res_shiftMatrix(@var{m},@var{v})
                    732: ::  Degree shift $B%Y%/%H%k(B @var{m} $B$KBP1~$9$k9TNs$r:n$k(B.
                    733: @item Res_shiftMatrix(@var{f},@var{v},@var{r})
                    734: ::  Degree shift $B%Y%/%H%k(B @var{m} $B$KBP1~$9$k9TNs$r:n$k(B. @var{r} $B$O(B ring.
                    735: @end table
                    736:
                    737: */
                    738: /*&en
                    739: @c %%%%%%%%%%%%%%%%%%%%  start of Res_shiftMatrix %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    740: @menu
                    741: * Res_shiftMatrix::
                    742: @end menu
                    743: @node Res_shiftMatrix,,, COMPLEX function
                    744: @subsection @code{Res_shiftMatrix}
                    745: @findex Res_shiftMatrix
                    746: @table @t
                    747: @item Res_shiftMatrix(@var{m},@var{v})
                    748: ::  Generate a matrix associated to a degree shift vector @var{m}
                    749: @item Res_shiftMatrix(@var{m},@var{v},@var{r})
                    750: ::  Generate a matrix associated to a degree shift vector @var{m}
                    751: @var{r} is a ring object.
                    752: @end table
                    753:
                    754: */
                    755:
                    756: /*&ja
                    757: @table @var
                    758: @item return
                    759: $B9TNs(B.
                    760: @item m
                    761: $B%Y%/%H%k(B
                    762: @item v
                    763: $BB?9`<0JQ?t$^$?$OJ8;zNs(B
                    764: @end table
                    765:
                    766: @itemize @bullet
                    767: @item diag(@var{v}^(@var{m}1), ..., @var{v}^(@var{m}n))
                    768: $B$J$k(B n $B!_(B n $B9TNs$rLa$9(B.
                    769: @end itemize
                    770:
                    771: */
                    772: /*&en
                    773: @table @var
                    774: @item return
                    775: Matrix
                    776: @item m
                    777: Vector
                    778: @item v
                    779: $BB?9`<0JQ?t$^$?$OJ8;zNs(B
                    780: @end table
                    781:
                    782: @itemize @bullet
                    783: @item Returns n by n matrix
                    784: diag(@var{v}^(@var{m}1), ..., @var{v}^(@var{m}n))
                    785: @end itemize
                    786:
                    787: */
                    788:
                    789: /*&C
                    790: @example
                    791: In(5)= r=RingD("x,y");
                    792: In(6)= Res_shiftMatrix([-1,0,3],x):
                    793: [    [    x^(-1) , 0 , 0 ]  , [    0 , 1 , 0 ]  , [    0 , 0 , x^3 ]  ]
                    794:
                    795: @end example
                    796: */
                    797:
                    798: /*&C
                    799: @example
                    800: In(9)=  rrr = RingD("t,x,y",[["t",1,"x",-1,"y",-1,"Dx",1,"Dy",1]]);
                    801: In(10)=  m=[Dx-(x*Dx+y*Dy+2),Dy-(x*Dx+y*Dy+2)];
                    802: In(12)=  m=Gb(m);
                    803: In(13)=  k = Kernel_h(m[0]);
                    804: In(14)=  Pmat(k[0]);
                    805:  [
                    806:    [    -Dy+3*h , Dx-3*h , 1 ]
                    807:    [    -x*Dx+x*Dy-y*Dy-3*x*h , y*Dy+3*x*h , h-x ]
                    808:  ]
                    809:
                    810: In(15)=Pmat(m[0]);
                    811:   [    Dx*h-x*Dx-y*Dy-2*h^2 , Dy*h-x*Dx-y*Dy-2*h^2 ,
                    812:        x*Dx^2-x*Dx*Dy+y*Dx*Dy-y*Dy^2 ]
                    813:
                    814: In(18)=k2 = Gb_h(k[0]*Res_shiftMatrix([1,1,1],t));
                    815: In(19)=Pmat(Substitute(k2[0],t,1));
                    816:  [
                    817:    [    -Dy+3*h , Dx-3*h , 1 ]
                    818:    [    -x*Dx+x*Dy-y*Dy-3*x*h , y*Dy+3*x*h , h-x ]
                    819:  ]
                    820:
                    821:
                    822: @end example
                    823: */
                    824:
                    825:
                    826: /*&ja
                    827:
                    828: @table @t
                    829: @item $B;2>H(B
                    830:     @code{Gb}, (m,(u,v))-$B%0%l%V%J4pDl(B
1.3       takayama  831: @item Files
                    832:     @code{lib/restriction/complex.k}
1.1       takayama  833: @end table
                    834: @c  %%%%%%%%%%%%%%%%%%%%  end of Res_shiftMatrix %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    835: */
                    836: /*&en
                    837:
                    838: @table @t
1.3       takayama  839: @item See also
1.1       takayama  840:    @code{Gb}, (m,(u,v))-Grobner basis
1.3       takayama  841: @item Files
                    842:     @code{lib/restriction/complex.k}
1.1       takayama  843: @end table
                    844: @c  %%%%%%%%%%%%%%%%%%%%  end of Res_shiftMatrix %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    845: */
                    846:
                    847:
                    848: @c --------------  Primitive $B4pK\(B ----------------------
                    849:
                    850: /*&ja
                    851:
                    852: @node $B4pK\(B $BH!?t(B,,, Top
                    853: @chapter $B4pK\(B $BH!?t(B
                    854: @section $BH!?t0lMw(B
                    855: */
                    856: /*&en
                    857:
                    858: @node Primitive function,,, Top
                    859: @chapter Primitive function
                    860: @section A list of functions
                    861: */
                    862: /*&C
                    863: @menu
1.2       takayama  864: * ChangeRing::
1.1       takayama  865: * Intersection::
                    866: * Getxvars::
                    867: * Firstn::
                    868: @end menu
                    869: */
                    870:
                    871: /*&ja
1.2       takayama  872: @c %%%%%%%%%%%%%%%%%%%%  start ChangeRing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    873: @node ChangeRing,,, $B4pK\(B $BH!?t(B
                    874: @subsection @code{ChangeRing}
                    875: @findex ChangeRing
1.1       takayama  876: @table @t
1.2       takayama  877: @item ChangeRing(@var{f})
                    878: ::  ChangeRing $B$O(B @var{f} $B$NMWAG$,B0$9$k4D$r(B current ring $B$K$9$k(B.
1.1       takayama  879: @end table
                    880:
                    881: @table @var
                    882: @item return
                    883: true $B$+(B false
                    884: @item f  $B%j%9%H(B
                    885: @end table
                    886:
                    887: @example
                    888:    RingD("x,y");
                    889:    f=[x+y,0];
                    890:    RingD("p,q,r");
1.2       takayama  891:    ChangeRing(f);
1.1       takayama  892: @end example
                    893:
                    894: @table @t
1.3       takayama  895: @item Files
                    896:     @code{lib/restriction/complex.k}
1.1       takayama  897: @end table
1.3       takayama  898: @c  %%%%%%%%%%%%%%%%%%%%  end of ChangeRing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1.1       takayama  899: */
                    900:
                    901:
                    902: /*&ja
                    903: @c %%%%%%%%%%%%%%%%%%%%  start of Intersection %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    904: @menu
                    905: * Intersection::
                    906: @end menu
                    907: @node Intersection,,, $B4pK\(B $BH!?t(B
                    908: @subsection @code{Intersection}
                    909: @findex Intersection
                    910: @table @t
                    911: @item Intersection(@var{i},@var{j})
                    912: ::  $B%$%G%"%k(B @var{i} $B$H(B @var{j} $B$N8r$o$j$r5a$a$k(B.
                    913: @item Intersection(@var{i},@var{j},@var{r})
                    914: ::  $B%$%G%"%k(B @var{i} $B$H(B @var{j} $B$N8r$o$j$r5a$a$k(B. $B7W;;$r4D(B @var{r}
                    915: $B$G$*$3$J$&(B.
                    916: @end table
                    917:
                    918: @table @var
                    919: @item return
                    920: $B%j%9%H$G$"$?$($i$l$?%$%G%"%k$^$?$O<+M32C72$NItJ,2C72(B
                    921: @item i  j
                    922: $B%$%G%"%k$^$?$O<+M32C72$NItJ,2C72(B
                    923: @item r
                    924: $B4D(B
                    925: @end table
                    926:
                    927: @itemize @bullet
                    928: @item  ::  $B%$%G%"%k(B @var{i} $B$H(B @var{j} $B$N8r$o$j$r5a$a$k(B.
                    929: @end itemize
                    930:
                    931: @example
                    932: In(16)= RingD("x,y");
                    933: In(17)= mm=[ [x,0],[0,y] ]; nn = [ [x^2,0],[0,y^3]];
                    934: In(19)= Intersection(mm,nn):
                    935: In(33)=Intersection(mm,nn):
                    936: [    [    -x^2 , 0 ]  , [    0 , -y^3 ]  ]
                    937: @end example
                    938:
                    939: @table @t
                    940: @item $B;2>H(B
1.3       takayama  941: @item Files
                    942:     @code{lib/restriction/complex.k}
1.1       takayama  943: @end table
                    944: @c  %%%%%%%%%%%%%%%%%%%%  end of Intersection %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    945: */
                    946:
                    947: /*&ja
                    948: @c %%%%%%%%%%%%%%%%%%%%  start of Getxvars %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    949: @menu
                    950: * Getxvars::
                    951: @end menu
                    952: @node Getxvars,,, $B4pK\(B $BH!?t(B
                    953: @subsection @code{Getxvars}
                    954: @findex Getxvars
                    955: @table @t
                    956: @item Getxvars()
                    957: ::  x $BJQ?t$rLa$9(B
                    958: @end table
                    959:
                    960: */
                    961: /*&en
                    962: @c %%%%%%%%%%%%%%%%%%%%  start of Getxvars %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                    963: @menu
                    964: * Getxvars::
                    965: @end menu
                    966: @node Getxvars,,, Primitive function
                    967: @subsection @code{Getxvars}
                    968: @findex Getxvars
                    969: @table @t
                    970: @item Getxvars()
                    971: ::  Return x variables
                    972: @end table
                    973:
                    974: */
                    975:
                    976: /*&ja
                    977: @table @var
                    978: @item return
                    979: [x_list, x_str]  x_list $B$O(B x $BJQ?t$N%j%9%H(B, x_str $B$O(B x $BJQ?t$r(B , $B$G6h@Z$C$?J8;zNs(B.
                    980: @end table
                    981:
                    982: */
                    983: /*&en
                    984: @table @var
                    985: @item return
                    986: [x_list, x_str] x_list is a list of x variables, x_str is a string consisting
                    987: of x variables separated by commas.
                    988: @end table
                    989:
                    990:
                    991: */
                    992:
                    993: /*&C
                    994: @example
                    995: In(4)=RingD("x,y");
                    996: In(5)=Getxvars():
                    997: [    [    y , x ]  , y,x, ]
                    998: @end example
                    999:
                   1000: */
                   1001:
                   1002:
                   1003: /*&ja
                   1004:
                   1005: @table @t
                   1006: @item $B;2>H(B
1.3       takayama 1007: @item Files
                   1008:     @code{lib/restriction/complex.k}
1.1       takayama 1009: @end table
                   1010: @c  %%%%%%%%%%%%%%%%%%%%  end of Getxvars %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                   1011: */
                   1012: /*&en
                   1013:
                   1014: @table @t
1.3       takayama 1015: @item See also
                   1016: @item Files
                   1017:     @code{lib/restriction/complex.k}
1.1       takayama 1018: @end table
                   1019: @c  %%%%%%%%%%%%%%%%%%%%  end of Getxvars %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                   1020: */
                   1021:
                   1022: /*&ja
                   1023: @c %%%%%%%%%%%%%%%%%%%%  start of Firstn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                   1024: @menu
                   1025: * Firstn::
                   1026: @end menu
                   1027: @node Firstn,,, $B4pK\(B $BH!?t(B
                   1028: @subsection @code{Firstn}
                   1029: @findex Firstn
                   1030: @table @t
                   1031: @item Firstn(@var{m},@var{n})
                   1032: ::  @var{m} $B$N:G=i$N(B @var{n} $B8D$r$H$j$@$9(B.
                   1033: @end table
                   1034:
                   1035: */
                   1036: /*&en
                   1037: @c %%%%%%%%%%%%%%%%%%%%  start of Firstn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                   1038: @menu
                   1039: * Firstn::
                   1040: @end menu
                   1041: @node Firstn,,, Primitive function
                   1042: @subsection @code{Firstn}
                   1043: @findex Firstn
                   1044: @table @t
                   1045: @item Firstn(@var{m},@var{n})
                   1046: ::  Return the first @var{n} elements of @var{m}.
                   1047: @end table
                   1048:
                   1049: */
                   1050:
                   1051: /*&ja
                   1052: @table @var
                   1053: @item return
                   1054: $B9TNs$^$?$O%Y%/%H%k(B
                   1055: @item m
                   1056: $B9TNs$^$?$O%Y%/%H%k(B
                   1057: @item n
                   1058: $B?t(B
                   1059: @end table
                   1060:
                   1061: @itemize @bullet
                   1062: @item  m $B$N:G=i$N(B n $B8D(B.  $B$H$/$K(B m $B$,9TNs$N$H$-$O(B, $B3F9T$h$j:G=i$N(B n $B8D$r$H$j$@$7$?(B
                   1063: $B$b$N$G:n$l$i$?9TNs$rLa$9(B.
                   1064: @end itemize
                   1065:
                   1066: */
                   1067: /*&en
                   1068: @table @var
                   1069: @item return
                   1070: Matrix or vector
                   1071: @item m
                   1072: Matrix or vector
                   1073: @item n
                   1074: Number
                   1075: @end table
                   1076:
                   1077: @itemize @bullet
                   1078: @item  The first n elements of m.  When m is a matrix, it returns the matrix
                   1079: consisting of first n elements of rows of m.
                   1080: @end itemize
                   1081:
                   1082: */
                   1083:
                   1084: /*&C
                   1085: @example
                   1086: In(16)= mm = [[1,2,3],[4,5,6]];
                   1087: In(17)= Firstn(mm,2):
                   1088:     [[1,2],
                   1089:      [4,5]]
                   1090: @end example
                   1091: */
                   1092:
                   1093:
                   1094: /*&ja
                   1095:
                   1096: @table @t
                   1097: @item $B;2>H(B
1.3       takayama 1098: @item Files
                   1099:     @code{lib/restriction/complex.k}
1.1       takayama 1100: @end table
                   1101: @c  %%%%%%%%%%%%%%%%%%%%  end of Firstn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                   1102: */
                   1103: /*&en
                   1104:
                   1105: @table @t
1.3       takayama 1106: @item See also
                   1107: @item Files
                   1108:     @code{lib/restriction/complex.k}
                   1109:
1.1       takayama 1110:
                   1111: @end table
                   1112: @c  %%%%%%%%%%%%%%%%%%%%  end of Firstn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1.4       takayama 1113: */
                   1114:
                   1115: /*&ja
                   1116: @c %%%%%%%%%%%%%%%%%%%%  start of GKZ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                   1117: @menu
                   1118: * GKZ::
                   1119: @end menu
                   1120: @node GKZ,,, $B4pK\(B $BH!?t(B
                   1121: @subsection @code{GKZ}
                   1122: @findex GKZ
                   1123: @table @t
                   1124: @item GKZ(@var{a},@var{b})
                   1125: ::  $B9TNs(B @var{a} $B$H(B $B%Y%/%H%k(B @var{b} $B$GDj$^$k(B, GKZ hypergeometric system $B$rLa$9(B.
                   1126: @end table
                   1127:
                   1128: @table @var
                   1129: @item return
                   1130: D $B$N%$%G%"%k$N@8@.85(B
                   1131: @item a
                   1132: $B@0?t9TNs(B
                   1133: @item b
                   1134: $B@0?t%Y%/%H%k(B
                   1135: @end table
                   1136:
                   1137: @itemize @bullet
                   1138: @item   $B9TNs(B @var{a} $B$H(B $B%Y%/%H%k(B @var{b} $B$GDj$^$k(B, GKZ hypergeometric system $B$rLa$9(B.
                   1139: @item Gelfand, Kapranov, Zelevinski $B$ND64v2?HyJ,J}Dx<0$rLa$9(B.
                   1140: @end itemize
                   1141:
                   1142: @example
                   1143: In(3)= GKZ([[1,1,1,1],[0,1,2,3]],[-1,-2]):
                   1144: [    x1*Dx1+x2*Dx2+x3*Dx3+x4*Dx4+1 , x2*Dx2+2*x3*Dx3+3*x4*Dx4+2 , Dx2^2-Dx1*Dx3 , -Dx3^2+Dx2*Dx4 , Dx2*Dx3-Dx1*Dx4 ]
                   1145: @end example
                   1146:
                   1147: @table @t
                   1148: @item $B;2>H(B
                   1149: @item Files
                   1150:     @code{lib/restriction/demo2.k}
                   1151: @end table
                   1152: @c  %%%%%%%%%%%%%%%%%%%%  end of GKZ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                   1153: */
                   1154:
                   1155: /*&ja
                   1156: @c %%%%%%%%%%%%%%%%%%%%  start of Slope %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
                   1157: @menu
                   1158: * Slope::
                   1159: @end menu
                   1160: @node Slope,,, $B4pK\(B $BH!?t(B
                   1161: @subsection @code{Slope}
                   1162: @findex Slope
                   1163: @table @t
                   1164: @item Slope(@var{i},@var{v},@var{f},@var{v})
                   1165: ::  $BHyJ,J}Dx<07O(B @var{i} $B$N(B slope $B$N=89g$r$b$H$a$k(B.
                   1166: @end table
                   1167:
                   1168: @table @var
                   1169: @item return
                   1170: Slope $B$N=89g$H$=$l$rM?$($k(B, weight vectors.
                   1171: @item i
                   1172: D $B$N%$%G%"%k$N@8@.85(B
                   1173: @item v
                   1174: $B6u4VJQ?t(B
                   1175: @item f
                   1176: F-filtration $B$rM?$($k(B weight vector (0,...,0,1,...,1).
                   1177: @item v
                   1178: V-filtration $B$rM?$($k(B weight vector.
                   1179: $B$?$H$($P(B (0,...,0,-1,0,...,0,1).
                   1180: @end table
                   1181:
                   1182: @itemize @bullet
                   1183: @item @var{i} $B$N(B x_i = 0 $B$K$=$C$?(B, $B86E@$G$N(B slope $B$NA4BN$r$b$H$a$k(B.
                   1184: @item $B7W;;$K$O(B Assi, Castro, Granger $B$N%"%k%4%j%:%`$rMQ$$$k(B.
                   1185: @item Geometric slope $B$r7W;;$9$k$?$a(B, radical $B$N7W;;$r$*$3$J$C$F$$$k(B.
                   1186: $B$3$l$K$O(B ox_asir $B$rMQ$$$F$$$k(B.
                   1187: @end itemize
                   1188:
                   1189: @example
                   1190: In(13)= a=GKZ([[1,3,7]],[-30]);
                   1191: In(14)= a:
                   1192: [    x1*Dx1+3*x2*Dx2+7*x3*Dx3+30 , -Dx1^3+Dx2 , -Dx1*Dx2^2+Dx3 , -Dx2^3+Dx1^2*Dx3 ]
                   1193: In(15)= Slope(a,[x1,x2,x3],[0,0,0,1,1,1],[0,0,-1,0,0,1]):
                   1194: [    [    (3)/(4) , [    0 , 0 , -4 , 3 , 3 , 7 ]  ]  ]
                   1195:
                   1196:
                   1197: @end example
                   1198:
                   1199: @table @t
                   1200: @item $B;2>H(B
                   1201: @item Files
                   1202:     @code{lib/restriction/demo2.k}
                   1203: @end table
                   1204: @c  %%%%%%%%%%%%%%%%%%%%  end of Slope %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1.1       takayama 1205: */
                   1206:

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