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

File: [local] / OpenXM / src / k097 / Doc / complex.texi (download)

Revision 1.5, Sun May 27 12:48:02 2001 UTC (23 years ago) by takayama
Branch: MAIN
CVS Tags: R_1_3_1-2, RELEASE_1_3_1_13b, RELEASE_1_2_3_12, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, KNOPPIX_2006, HEAD, DEB_REL_1_2_3-9
Changes since 1.4: +1 -76 lines

Generate HTML helps for kan/k0. (It has not yet completed.)

%% $OpenXM: OpenXM/src/k097/Doc/complex.texi,v 1.5 2001/05/27 12:48:02 takayama Exp $

/*&ja

@node COMPLEX $BH!?t(B,,, Top
@chapter COMPLEX $BH!?t(B
@section $BH!?t0lMw(B
*/
/*&en

@node COMPLEX function,,, Top
@chapter COMPLEX function
@section A list of functions
*/
/*&C
@menu
* Res_solv::
* Res_solv2::
* Kernel::
* Kernel2::
* Gb::
* Gb_h::
* Res_shiftMatrix::
@end menu

*/

/*&ja
@c %%%%%%%%%%%%%%%%%%%%  start of Res_solv %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Res_solv::
@end menu
@node Res_solv,,, COMPLEX $BH!?t(B
@subsection @code{Res_solv}
@findex Res_solv
@table @t
@item Res_solv(@var{m},@var{d})
::  $B0l<!ITDjJ}Dx<0(B u @var{m} =@var{d} $B$N2r$r$b$H$a$k(B. 
@item Res_solv(@var{m},@var{d},@var{r})
::  $B0l<!ITDjJ}Dx<0(B u @var{m} =@var{d} $B$N2r$r$b$H$a$k(B. @var{r} $B$O(B ring.
@end table

*/
/*&en
@c %%%%%%%%%%%%%%%%%%%%  start of Res_solv %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Res_solv::
@end menu
@node Res_solv,,, COMPLEX function
@subsection @code{Res_solv}
@findex Res_solv
@table @t
@item Res_solv(@var{m},@var{d})
::  Find a solution u of the linear indefinite equation u @var{m} =@var{d}.
@item Res_solv(@var{m},@var{d},@var{r})
::  Find a solution u of the linear indefinite equation u @var{m} =@var{d}.
@var{r} is a ring object.
@end table

*/

/*&ja
@table @var
@item return
[c,r] $B$,La$jCM$N$H$-(B c/r $B$,2r(B u ($B2#%Y%/%H%k(B).
@item m
$B9TNs$^$?$O%Y%/%H%k(B
@item d
$B%Y%/%H%k(B $B$^$?$O%9%+%i!<(B
@end table

@itemize @bullet
@item  $B0l<!ITDjJ}Dx<0(B u @var{m} =@var{d} $B$N2r$r$b$H$a$k(B.
@item  @var{m}, @var{d} $B$N=g$K4D$NDj5A$r8!:w$7(B, $B$=$N4D$HF1$8JQ?t=89g$r(B
$B$b$DHyJ,:nMQAG4D(B(graded reverse lexicographic order)$B$GITDjJ}Dx<0$r2r$/(B.
$B4D(B @var{r} $B$,$"$?$($i$l$F$$$k$H$-$O(B, @var{r} $B$HF1$8JQ?t=89g$r$b$D(B
$BHyJ,:nMQAG4D(B(graded reverse lexicographic order)$B$GITDjJ}Dx<0$r2r$/(B.
@item @var{m}, @var{d} $B$,Dj?t@.J,$N$H$-$O(B, $B4D(B @var{r} $B$rM?$($kI,MW$,$"$k(B.
(@var{m}, @var{d} $B$h$j4D$N>pJs$r$H$j$@$;$J$$$?$a(B).
@end itemize

*/
/*&en
@table @var
@item return
When [c,r] is the return value,  c/r is the solution u.
@item m
Matrix or vector
@item d
Vector or scalar
@end table

@itemize @bullet
@item  Find a solution u of the linear indefinite equation u @var{m} =@var{d}.
@item It solves the linear indefinite equation in the ring of differential
operators (with graded reverse lexicographic order) of the same set 
of variables of the ring to which @var{m} or @var{d} belongs.
When the ring @var{r} is given, 
it solves the linear indefinite equation in the ring of differential
operators (with graded reverse lexicographic order) of the same set 
of variables of the ring @var{r}.
@item When @var{m} and @var{d} consist of constants, a ring @var{r}
should be given.
@end itemize

*/

/*&C
@example
In(16)= RingD("x,y");
In(17)= mm=[Dx,Dy,x];
In(18)= Res_solv(mm,1):
[    [    x , 0 , -Dx ]  , -1 ] 
@end example
*/
/*&ja
$B$3$l$O(B -x*Dx + 0*Dy+Dx*x = 1 $B$G$"$k$3$H$r<($9(B.
*/
/*&en
The output means that  -x*Dx + 0*Dy+Dx*x = 1.
*/

/*&C
@example
In(4)=RingD("x");
     m=[ [x*Dx+2, 0],[Dx+3,x^3],[3,x],[Dx*(x*Dx+3)-(x*Dx+2)*(x*Dx-4),0]];
     d=[1,0];
     Res_solv(m,d):

[    [    x^2*Dx-x*Dx-4*x-1 , 0 , 0 , x ]  , -2 ] 
@end example
*/
/*&ja
$B$3$l$O(B
-(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]
= [1,0]
$B$G$"$k$3$H$r<($9(B.
*/
/*&en
The output implies that
-(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]
= [1,0]
*/

/*&C

@example

In(4)= r=RingD("x,y");
In(5)= Res_solv([[1,2],[3,4]],[5,0],r):
[    [    10 , -5 ]  , -1 ] 

@end example


*/


/*&ja

@table @t
@item $B;2>H(B
    @code{Res_solv_h}, @code{Kernel},  @code{GetRing}, @code{SetRing}.  
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Res_solv %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item See also
    @code{Res_solv_h}, @code{Kernel},  @code{GetRing}, @code{SetRing}.  
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Res_solv %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/

/*&ja
@c %%%%%%%%%%%%%%%%%%%%  start of Res_solv2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Res_solv2::
@end menu
@node Res_solv2,,, COMPLEX $BH!?t(B
@subsection @code{Res_solv2}
@findex Res_solv2
@table @t
@item Res_solv2(@var{m},@var{v},@var{j})
::  $B0l<!ITDjJ}Dx<0(B u @var{m} =@var{v} mod @var{j} $B$N2r$r$b$H$a$k(B. 
@item Res_solv2(@var{m},@var{v},@var{j},@var{r})
::  $B0l<!ITDjJ}Dx<0(B u @var{m} =@var{v} mod @var{j} $B$N2r$r$b$H$a$k(B. 
@var{r} $B$O(B ring.
@end table

*/
/*&en
@c %%%%%%%%%%%%%%%%%%%%  start of Res_solv2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Res_solv2::
@end menu
@node Res_solv2,,, COMPLEX function
@subsection @code{Res_solv2}
@findex Res_solv2
@table @t
@item Res_solv2(@var{m},@var{v},@var{j})
::  Find a solution u of the linear indefinite equation u @var{m} =@var{v}
    mod @var{j}. 
@item Res_solv2(@var{m},@var{v},@var{j},@var{r})
::  Find a solution u of the linear indefinite equation u @var{m} =@var{v}
mod @var{j}.
@var{r} is a ring object.
@end table

*/

/*&ja
@table @var
@item return
[c,r] $B$,La$jCM$N$H$-(B c/r $B$,2r(B u ($B2#%Y%/%H%k(B).
@item m
$B9TNs$^$?$O%Y%/%H%k(B
@item v  j
$B%Y%/%H%k(B $B$^$?$O%9%+%i!<(B
@end table

@itemize @bullet
@item  $B0l<!ITDjJ}Dx<0(B u @var{m} =@var{v} mod @var{j} $B$N2r$r$b$H$a$k(B.
@item $B$3$l$O(B, @var{m} $B$r(B
 @var{m} :  D^p ---> D^q/@var{j} 
$B$J$k:8(B D homomorphism $B$H$_$J$9$H$-(B,
@var{m}^(-1)(@var{v}) $B$r5a$a$k$3$H$KAjEv$9$k(B.
@item  @var{m}, @var{v} $B$N=g$K4D$NDj5A$r8!:w$7(B, $B$=$N4D$HF1$8JQ?t=89g$r(B
$B$b$DHyJ,:nMQAG4D(B(graded reverse lexicographic order)$B$GITDjJ}Dx<0$r2r$/(B.
$B4D(B @var{r} $B$,$"$?$($i$l$F$$$k$H$-$O(B, @var{r} $B$HF1$8JQ?t=89g$r$b$D(B
$BHyJ,:nMQAG4D(B(graded reverse lexicographic order)$B$GITDjJ}Dx<0$r2r$/(B.
@item @var{m}, @var{v} $B$,Dj?t@.J,$N$H$-$O(B, $B4D(B @var{r} $B$rM?$($kI,MW$,$"$k(B.
(@var{m}, @var{v} $B$h$j4D$N>pJs$r$H$j$@$;$J$$$?$a(B).
@end itemize

*/
/*&en
@table @var
@item return
When [c,r] is the return value,  c/r is the solution u.
@item m
Matrix or vector
@item v j
Vector or scalar
@end table

@itemize @bullet
@item  Find a solution u of the linear indefinite equation u @var{m} =@var{v}
mod @var{j}.
@item Let  @var{m} be the left D-homomorphism
 @var{m} :  D^p ---> D^q/@var{j}.
The function returns an element in 
@var{m}^(-1)(@var{v}).
@item It solves the linear indefinite equation in the ring of differential
operators (with graded reverse lexicographic order) of the same set 
of variables of the ring to which @var{m} or @var{v} belongs.
When the ring @var{r} is given, 
it solves the linear indefinite equation in the ring of differential
operators (with graded reverse lexicographic order) of the same set 
of variables of the ring @var{r}.
@item When @var{m} and @var{v} consist of constants, a ring @var{r}
should be given.
@end itemize

*/

/*&C
@example
In(28)= r=RingD("x,y");
In(29)= Res_solv2([x,y],[x^2+y^2],[x]):
[    [    0 , y ]  , 1 ] 

@end example
*/
/*&ja
$B$3$l$O(B 0*x + y*y = x^2+y^2 mod x $B$G$"$k$3$H$r<($9(B.
*/
/*&en
The output means that  0*x + y*y = x^2+y^2 mod x
*/

/*&C
@example

In(32)= Res_solv2([x,y],[x^2+y^2],[],r):
[    [    x , y ]  , 1 ] 


@end example
*/
/*&ja
$B$3$l$O(B
  x*x + y*y = x^2+y^2
$B$G$"$k$3$H$r<($9(B.
*/
/*&en
The output implies that
  x*x + y*y = x^2+y^2.
*/



/*&ja

@table @t
@item $B;2>H(B
    @code{Res_solv2_h}, @code{Kernel2},  @code{GetRing}, @code{SetRing}.  
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Res_solv2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item See also
    @code{Res_solv2_h}, @code{Kernel2},  @code{GetRing}, @code{SetRing}.  
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Res_solv2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/


/*&ja
@c %%%%%%%%%%%%%%%%%%%%  start of Kernel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@c Kernel $B$O(B minimal.k $B$K$"$k$,(B complex.k $B$J$I$K0\F0$9$Y$-(B.
@menu
* Kernel::
@end menu
@node Kernel,,, COMPLEX $BH!?t(B
@subsection @code{Kernel}
@findex Kernel
@table @t
@item Kernel(@var{m})
::  $B0l<!ITDjJ}Dx<0(B u @var{m} =0 $B$N2r6u4V$N4pDl$r5a$a$k(B.
@item Kernel(@var{m},@var{r})
::  $B0l<!ITDjJ}Dx<0(B u @var{m} =0 $B$N2r6u4V$N4pDl$r5a$a$k(B. @var{r} $B$O(B ring.
@end table

*/
/*&en
@c %%%%%%%%%%%%%%%%%%%%  start of Kernel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Kernel::
@end menu
@node Kernel,,, COMPLEX function
@subsection @code{Kernel}
@findex Kernel
@table @t
@item Kernel(@var{m})
::  Find solution basis of the linear indefinite equation u @var{m} =0.
@item Kernel(@var{m},@var{r})
::  Find solution basis of the linear indefinite equation u @var{m} =0.
@var{r} is a ring object.
@end table

*/

/*&ja
@table @var
@item return
$B%j%9%H(B
@item m
$B9TNs$^$?$O%Y%/%H%k(B
@end table

@itemize @bullet
@item  $B0l<!ITDjJ}Dx<0(B u @var{m} =0 $B$N2r6u4V$N4pDl$r5a$a$k(B.
@item $BLa$jCM$r(B k $B$H$9$k$H$-(B k[0] $B$,(B $B2r6u4V$N4pDl$N=89g(B.
k[1] $B$O(B [gb, backward transformation, syzygy without dehomogenization].
@item  @var{m} $B$h$j4D$NDj5A$r8!:w$7(B, $B$=$N4D$G%+!<%M%k$r7W;;$9$k(B.
$B4D(B @var{r} $B$,$"$?$($i$l$F$$$k$H$-$O(B, @var{r} $B$G%+!<%M%k$r7W;;$9$k(B.
@item @var{m} $B$,Dj?t@.J,$N$H$-$O(B, $B4D(B @var{r} $B$rM?$($kI,MW$,$"$k(B.
(@var{m} $B$h$j4D$N>pJs$r$H$j$@$;$J$$$?$a(B).
@item BUG:  Kernel $B$*$h$S(B Res_solv (syz, res-solv) $B$N$_$,(B, $B4D0z?t$K(B
$BBP1~$7$F$k(B. (2000, 12/29 $B8=:_(B).
@end itemize

*/
/*&en
@table @var
@item return
List
@item m
Matrix or vector
@end table

@itemize @bullet
@item  Find solution basis of the linear indefinite equation u @var{m} =0.
@item When the return value is  k, k[0] is a set of generators of the kernel.
k[1] is [gb, backward transformation, syzygy without dehomogenization].
@item It finds the kernel in the ring 
to which @var{m} belongs.
When the ring @var{r} is given, 
it finds the kernel in the ring @var{r}.
@item When @var{m} consists of constants, a ring @var{r}
should be given.
@end itemize

*/

/*&C
@example
In(16)= RingD("x,y");
In(17)= mm=[[Dx],[Dy],[x]];
In(18)= Pmat(Kernel(mm));
 [ 
  [ 
    [    -x*Dx-2 , 0 , Dx^2 ] 
    [    -x*Dy , -1 , Dx*Dy ] 
    [    -x^2 , 0 , x*Dx-1 ] 
  ]
  [ 
   [ 
     [    -1 ] 
   ]
   [ 
     [    x , 0 , -Dx ] 
   ]
   [ 
     [    -x*Dx-2 , 0 , Dx^2 ] 
     [    -x*Dy , -1 , Dx*Dy ] 
     [    -x^2 , 0 , x*Dx-1 ] 
   ]
  ]
 ]

@end example
*/


/*&C

@example

In(4)= r=RingD("x,y");
In(5)= k=Kernel([[1,2],[2,4]],r); k[0]:
[    [    2 , -1 ]  ] 
@end example


*/


/*&ja

@table @t
@item $B;2>H(B
    @code{Kernel_h}, @code{Res_solv}, @code{GetRing}, @code{SetRing}. 
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Kernel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item See also
    @code{Kernel_h}, @code{Res_solv},  @code{GetRing}, @code{SetRing}. 
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Kernel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&ja
@c %%%%%%%%%%%%%%%%%%%%  start of Kernel2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Kernel2::
@end menu
@node Kernel2,,, COMPLEX $BH!?t(B
@subsection @code{Kernel2}
@findex Kernel2
@table @t
@item Kernel2(@var{m},@var{j})
::  @var{m} : D^p ---> D^q/@var{j} $B$N(B Kernel $B$r5a$a$k(B. 
@item Kernel2(@var{m},@var{j},@var{r})
::  @var{m} : D^p ---> D^q/@var{j} $B$N(B Kernel $B$r5a$a$k(B. @var{r} $B$O(B ring.
@end table

*/
/*&en
@c %%%%%%%%%%%%%%%%%%%%  start of Kernel2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Kernel2::
@end menu
@node Kernel2,,, COMPLEX function
@subsection @code{Kernel2}
@findex Kernel2
@table @t
@item Kernel2(@var{m})
::  Get the kernel of @var{m} : D^p ---> D^q/@var{j}.
@item Kernel2(@var{m},@var{r})
::   Get the kernel of @var{m} : D^p ---> D^q/@var{j}.
@var{r} is a ring object.
@end table

*/

/*&ja
@table @var
@item return
$B%j%9%H(B
@item m  j
$B9TNs$^$?$O%Y%/%H%k(B
@end table

@itemize @bullet
@item @var{m} : D^p ---> D^q/@var{j} $B$N(B Kernel $B$r5a$a$k(B. 
@item D^p $B$O2#%Y%/%H%k$G$"$j(B, u $B$,(B D^p $B$N85$N$H$-(B,
    u @var{m} $B$G<LA|$rDj5A$9$k(B.
@item  @var{m} $B$h$j4D$NDj5A$r8!:w$7(B, $B$=$N4D$G%+!<%M%k$r7W;;$9$k(B.
$B4D(B @var{r} $B$,$"$?$($i$l$F$$$k$H$-$O(B, @var{r} $B$G%+!<%M%k$r7W;;$9$k(B.
@item @var{m} $B$,Dj?t@.J,$N$H$-$O(B, $B4D(B @var{r} $B$rM?$($kI,MW$,$"$k(B.
(@var{m} $B$h$j4D$N>pJs$r$H$j$@$;$J$$$?$a(B).
@end itemize

*/
/*&en
@table @var
@item return
List
@item m  j
Matrix or vector
@end table

@itemize @bullet
@item Get a set of generators of the the kernel 
of @var{m} : D^p ---> D^q/@var{j}.
@item D^p is a set of row vectors. When u is an element of D^p,
define the map from D^p to D^q/@var{j} by u @var{m}.
@item It finds the kernel in the ring 
to which @var{m} belongs.
When the ring @var{r} is given, 
it finds the kernel in the ring @var{r}.
@item When @var{m} consists of constants, a ring @var{r}
should be given.
@end itemize

*/

/*&C
@example
In(27)= r=RingD("x,y");
In(28)= Kernel2([[x,y],[x^2,x*y]],[]):
[    [    -x , 1 ]  ] 
In(29)=Kernel2([[x,y],[x^2,x*y]],[[x,y]]):
[    [    1 , 0 ]  , [    0 , 1 ]  ] 

In(41)=Kernel2([0],[0],r):
[    [    1 ]  , [    0 ]  ] 
In(42)=Kernel2([[0,0],[0,0]],[[0,0]],r):
[    [    1 , 0 ]  , [    0 , 1 ]  , [    0 , 0 ]  ] 
In(43)=Kernel2([[0,0,0],[0,0,0]],[],r):
[    [    1 , 0 ]  , [    0 , 1 ]  ] 

@end example
*/


/*&ja

@table @t
@item $B;2>H(B
    @code{Kernel2_h}, @code{Res_solv2}, @code{GetRing}, @code{SetRing},
    @code{Kernel}. 
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Kernel2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item See also
    @code{Kernel2_h}, @code{Res_solv2},  @code{GetRing}, @code{SetRing},
    @code{Kernel} 
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Kernel2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/

/*&ja
@c %%%%%%%%%%%%%%%%%%%%  start of Gb %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Gb::
@end menu
@node Gb,,, COMPLEX $BH!?t(B
@node Gb_h,,, COMPLEX $BH!?t(B
@subsection @code{Gb}
@findex Gb
@findex Gb_h
@table @t
@item Gb(@var{f})
::  @var{f} $B$N%0%l%V%J4pDl$r$b$H$a$k(B.
@item Gb(@var{f},@var{r})
::  @var{f} $B$N%0%l%V%J4pDl$r$b$H$a$k(B. @var{r} $B$O(B ring.
@item Gb_h(@var{f})
::  @var{f} $B$N%0%l%V%J4pDl$r$b$H$a$k(B.
@item Gb_h(@var{f},@var{r})
::  @var{f} $B$N%0%l%V%J4pDl$r$b$H$a$k(B. @var{r} $B$O(B ring.
@end table

*/
/*&en
@c %%%%%%%%%%%%%%%%%%%%  start of Gb %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Gb::
@end menu
@node Gb,,, COMPLEX function
@node Gb_h,,, COMPLEX function
@subsection @code{Gb}
@findex Gb
@table @t
@item Gb(@var{f})
::  It computes the Grobner basis of @var{f}.
@item Gb(@var{m},@var{r})
::  It computes the Grobner basis of @var{f}.
@var{r} is a ring object.
@item Gb_h(@var{f})
::  It computes the Grobner basis of @var{f}.
@item Gb_h(@var{m},@var{r})
::  It computes the Grobner basis of @var{f}.
@var{r} is a ring object.
@end table

*/

/*&ja
@table @var
@item return
$B%j%9%H(B
@item f
$B9TNs$^$?$O%Y%/%H%k(B
@end table

@itemize @bullet
@item  @var{f} $B$N%0%l%V%J4pDl$r$b$H$a$k(B.
@item _h $BIU$-$N>l9g$O(B, $BF1<!%o%$%kBe?t$G7W;;$r$*$3$J$&(B.
@item $BLa$jCM$r(B k $B$H$9$k$H$-(B k[0] $B$,(B $B%0%l%V%J4pDl(B.
$B4D$,(B weight vector $BIU$-$GDj5A$5$l$?$H$-$O(B,
k[1] $B$O(B initial ideal $B$^$?$O(B initial module.
@item  @var{m} $B$h$j4D$NDj5A$r8!:w$7(B, $B$=$N4D$G%0%l%V%J4pDl$r7W;;$9$k(B.
$B4D(B @var{r} $B$,$"$?$($i$l$F$$$k$H$-$O(B, @var{r} $B$G%0%l%V%J4pDl$r7W;;$9$k(B.
@item @var{m} $B$,Dj?t@.J,$N$H$-$O(B, $B4D(B @var{r} $B$rM?$($kI,MW$,$"$k(B.
(@var{m} $B$h$j4D$N>pJs$r$H$j$@$;$J$$$?$a(B).
@end itemize

*/
/*&en
@table @var
@item return
List
@item f
Matrix or vector
@end table

@itemize @bullet
@item  Compute the Grobner basis of @var{f}.
@item Functions with _h  computes Grobner bases in the homogenized Weyl
algebra.
@item When the return value is  k, k[0] is the Grobner basis.
k[1] is the initial ideal or the initial module of @var{f},
when the ring is defined with a weight vector.
@item It computes the Grobner basis in the ring 
to which @var{f} belongs.
When the ring @var{r} is given, 
it computes the Grobner basis in the ring @var{r}.
@item When @var{f} consists of constants, a ring @var{r}
should be given.
@end itemize

*/

/*&C
@example
In(5)= r=RingD("x,y");
In(6)= m=[[x^2+y^2-1],[x*y-1]];
In(7)= Gb(m):
[    [    [    x^2+y^2-1 ]  , [    x*y-1 ]  , [    y^3+x-y ]  ]  , 
[    [    x^2+y^2-1 ]  , [    x*y-1 ]  , [    y^3+x-y ]  ]  ] 

In(11)= RingD("x,y",[["x",1]]);
In(12)= r=RingD("x,y",[["x",1]]);
In(13)= Gb(m,r):
[    [    [    x+y^3-y ]  , [    -y^4+y^2-1 ]  ]  , 
[    [    x ]  , [    -y^4+y^2-1 ]  ]  ] 

@end example
*/


/*&ja

@table @t
@item $B;2>H(B
    @code{Gb_h}, @code{Kernel}, @code{Res_solv}, @code{RingD}, 
    @code{GetRing}, @code{SetRing}. 
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Gb %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item See also
    @code{Gb_h}, @code{Kernel}, @code{Res_solv}, @code{RingD}, 
    @code{GetRing}, @code{SetRing}. 
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Gb %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/

/*&ja
@c %%%%%%%%%%%%%%%%%%%%  start of Res_shiftMatrix %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Res_shiftMatrix::
@end menu
@node Res_shiftMatrix,,, COMPLEX $BH!?t(B
@subsection @code{Res_shiftMatrix}
@findex Res_shiftMatrix
@table @t
@item Res_shiftMatrix(@var{m},@var{v})
::  Degree shift $B%Y%/%H%k(B @var{m} $B$KBP1~$9$k9TNs$r:n$k(B.
@item Res_shiftMatrix(@var{f},@var{v},@var{r})
::  Degree shift $B%Y%/%H%k(B @var{m} $B$KBP1~$9$k9TNs$r:n$k(B. @var{r} $B$O(B ring.
@end table

*/
/*&en
@c %%%%%%%%%%%%%%%%%%%%  start of Res_shiftMatrix %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Res_shiftMatrix::
@end menu
@node Res_shiftMatrix,,, COMPLEX function
@subsection @code{Res_shiftMatrix}
@findex Res_shiftMatrix
@table @t
@item Res_shiftMatrix(@var{m},@var{v})
::  Generate a matrix associated to a degree shift vector @var{m}
@item Res_shiftMatrix(@var{m},@var{v},@var{r})
::  Generate a matrix associated to a degree shift vector @var{m}
@var{r} is a ring object.
@end table

*/

/*&ja
@table @var
@item return
$B9TNs(B.
@item m
$B%Y%/%H%k(B
@item v
$BB?9`<0JQ?t$^$?$OJ8;zNs(B
@end table

@itemize @bullet
@item diag(@var{v}^(@var{m}1), ..., @var{v}^(@var{m}n))
$B$J$k(B n $B!_(B n $B9TNs$rLa$9(B.
@end itemize

*/
/*&en
@table @var
@item return
Matrix
@item m
Vector
@item v
$BB?9`<0JQ?t$^$?$OJ8;zNs(B
@end table

@itemize @bullet
@item Returns n by n matrix
diag(@var{v}^(@var{m}1), ..., @var{v}^(@var{m}n))
@end itemize

*/

/*&C
@example
In(5)= r=RingD("x,y");
In(6)= Res_shiftMatrix([-1,0,3],x):
[    [    x^(-1) , 0 , 0 ]  , [    0 , 1 , 0 ]  , [    0 , 0 , x^3 ]  ] 

@end example
*/

/*&C
@example
In(9)=  rrr = RingD("t,x,y",[["t",1,"x",-1,"y",-1,"Dx",1,"Dy",1]]);
In(10)=  m=[Dx-(x*Dx+y*Dy+2),Dy-(x*Dx+y*Dy+2)];
In(12)=  m=Gb(m);
In(13)=  k = Kernel_h(m[0]);
In(14)=  Pmat(k[0]);
 [ 
   [    -Dy+3*h , Dx-3*h , 1 ] 
   [    -x*Dx+x*Dy-y*Dy-3*x*h , y*Dy+3*x*h , h-x ] 
 ]

In(15)=Pmat(m[0]);
  [    Dx*h-x*Dx-y*Dy-2*h^2 , Dy*h-x*Dx-y*Dy-2*h^2 , 
       x*Dx^2-x*Dx*Dy+y*Dx*Dy-y*Dy^2 ] 

In(18)=k2 = Gb_h(k[0]*Res_shiftMatrix([1,1,1],t));
In(19)=Pmat(Substitute(k2[0],t,1));
 [ 
   [    -Dy+3*h , Dx-3*h , 1 ] 
   [    -x*Dx+x*Dy-y*Dy-3*x*h , y*Dy+3*x*h , h-x ] 
 ]


@end example
*/


/*&ja

@table @t
@item $B;2>H(B
    @code{Gb}, (m,(u,v))-$B%0%l%V%J4pDl(B
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Res_shiftMatrix %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item See also
   @code{Gb}, (m,(u,v))-Grobner basis
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Res_shiftMatrix %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/


@c --------------  Primitive $B4pK\(B ----------------------

/*&ja

@node $B4pK\(B $BH!?t(B,,, Top
@chapter $B4pK\(B $BH!?t(B
@section $BH!?t0lMw(B
*/
/*&en

@node Primitive function,,, Top
@chapter Primitive function
@section A list of functions
*/
/*&C
@menu
* ChangeRing::
* Intersection::
* Getxvars::
* Firstn::
@end menu
*/

/*&ja
@c %%%%%%%%%%%%%%%%%%%%  start ChangeRing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@node ChangeRing,,, $B4pK\(B $BH!?t(B
@subsection @code{ChangeRing}
@findex ChangeRing
@table @t
@item ChangeRing(@var{f})
::  ChangeRing $B$O(B @var{f} $B$NMWAG$,B0$9$k4D$r(B current ring $B$K$9$k(B.
@end table
 
@table @var
@item return
true $B$+(B false
@item f  $B%j%9%H(B
@end table

@example
   RingD("x,y");
   f=[x+y,0];
   RingD("p,q,r");
   ChangeRing(f);
@end example

@table @t
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of ChangeRing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/


/*&ja
@c %%%%%%%%%%%%%%%%%%%%  start of Intersection %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Intersection::
@end menu
@node Intersection,,, $B4pK\(B $BH!?t(B
@subsection @code{Intersection}
@findex Intersection
@table @t
@item Intersection(@var{i},@var{j})
::  $B%$%G%"%k(B @var{i} $B$H(B @var{j} $B$N8r$o$j$r5a$a$k(B.
@item Intersection(@var{i},@var{j},@var{r})
::  $B%$%G%"%k(B @var{i} $B$H(B @var{j} $B$N8r$o$j$r5a$a$k(B. $B7W;;$r4D(B @var{r} 
$B$G$*$3$J$&(B.
@end table

@table @var
@item return
$B%j%9%H$G$"$?$($i$l$?%$%G%"%k$^$?$O<+M32C72$NItJ,2C72(B
@item i  j
$B%$%G%"%k$^$?$O<+M32C72$NItJ,2C72(B
@item r
$B4D(B
@end table

@itemize @bullet
@item  ::  $B%$%G%"%k(B @var{i} $B$H(B @var{j} $B$N8r$o$j$r5a$a$k(B.
@end itemize

@example
In(16)= RingD("x,y");
In(17)= mm=[ [x,0],[0,y] ]; nn = [ [x^2,0],[0,y^3]];
In(19)= Intersection(mm,nn):
In(33)=Intersection(mm,nn):
[    [    -x^2 , 0 ]  , [    0 , -y^3 ]  ] 
@end example

@table @t
@item $B;2>H(B
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Intersection %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/

/*&ja
@c %%%%%%%%%%%%%%%%%%%%  start of Getxvars %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Getxvars::
@end menu
@node Getxvars,,, $B4pK\(B $BH!?t(B
@subsection @code{Getxvars}
@findex Getxvars
@table @t
@item Getxvars()
::  x $BJQ?t$rLa$9(B
@end table

*/
/*&en
@c %%%%%%%%%%%%%%%%%%%%  start of Getxvars %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Getxvars::
@end menu
@node Getxvars,,, Primitive function
@subsection @code{Getxvars}
@findex Getxvars
@table @t
@item Getxvars()
::  Return x variables
@end table

*/

/*&ja
@table @var
@item return
[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.
@end table

*/
/*&en
@table @var
@item return
[x_list, x_str] x_list is a list of x variables, x_str is a string consisting
of x variables separated by commas.
@end table


*/

/*&C
@example
In(4)=RingD("x,y");
In(5)=Getxvars():
[    [    y , x ]  , y,x, ] 
@end example

*/


/*&ja

@table @t
@item $B;2>H(B
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Getxvars %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item See also
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Getxvars %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/

/*&ja
@c %%%%%%%%%%%%%%%%%%%%  start of Firstn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Firstn::
@end menu
@node Firstn,,, $B4pK\(B $BH!?t(B
@subsection @code{Firstn}
@findex Firstn
@table @t
@item Firstn(@var{m},@var{n})
::  @var{m} $B$N:G=i$N(B @var{n} $B8D$r$H$j$@$9(B.
@end table

*/
/*&en
@c %%%%%%%%%%%%%%%%%%%%  start of Firstn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Firstn::
@end menu
@node Firstn,,, Primitive function
@subsection @code{Firstn}
@findex Firstn
@table @t
@item Firstn(@var{m},@var{n})
::  Return the first @var{n} elements of @var{m}.
@end table

*/

/*&ja
@table @var
@item return
$B9TNs$^$?$O%Y%/%H%k(B
@item m
$B9TNs$^$?$O%Y%/%H%k(B
@item n
$B?t(B
@end table

@itemize @bullet
@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
$B$b$N$G:n$l$i$?9TNs$rLa$9(B.
@end itemize

*/
/*&en
@table @var
@item return
Matrix or vector
@item m
Matrix or vector
@item n
Number
@end table

@itemize @bullet
@item  The first n elements of m.  When m is a matrix, it returns the matrix
consisting of first n elements of rows of m.
@end itemize

*/

/*&C
@example
In(16)= mm = [[1,2,3],[4,5,6]];
In(17)= Firstn(mm,2):
    [[1,2], 
     [4,5]]
@end example
*/


/*&ja

@table @t
@item $B;2>H(B
@item Files
    @code{lib/restriction/complex.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Firstn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item See also
@item Files
    @code{lib/restriction/complex.k}


@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Firstn %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/

/*&ja
@c %%%%%%%%%%%%%%%%%%%%  start of GKZ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* GKZ::
@end menu
@node GKZ,,, $B4pK\(B $BH!?t(B
@subsection @code{GKZ}
@findex GKZ
@table @t
@item GKZ(@var{a},@var{b})
::  $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.
@end table

@table @var
@item return
D $B$N%$%G%"%k$N@8@.85(B
@item a
$B@0?t9TNs(B
@item b
$B@0?t%Y%/%H%k(B
@end table

@itemize @bullet
@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.
@item Gelfand, Kapranov, Zelevinski $B$ND64v2?HyJ,J}Dx<0$rLa$9(B. 
@end itemize

@example
In(3)= GKZ([[1,1,1,1],[0,1,2,3]],[-1,-2]):
[    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 ]
@end example

@table @t
@item $B;2>H(B
@item Files
    @code{lib/restriction/demo2.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of GKZ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/

/*&ja
@c %%%%%%%%%%%%%%%%%%%%  start of Slope %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* Slope::
@end menu
@node Slope,,, $B4pK\(B $BH!?t(B
@subsection @code{Slope}
@findex Slope
@table @t
@item Slope(@var{i},@var{v},@var{f},@var{v})
::  $BHyJ,J}Dx<07O(B @var{i} $B$N(B slope $B$N=89g$r$b$H$a$k(B.
@end table

@table @var
@item return
Slope $B$N=89g$H$=$l$rM?$($k(B, weight vectors.
@item i
D $B$N%$%G%"%k$N@8@.85(B
@item v
$B6u4VJQ?t(B
@item f
F-filtration $B$rM?$($k(B weight vector (0,...,0,1,...,1).
@item v
V-filtration $B$rM?$($k(B weight vector.
$B$?$H$($P(B (0,...,0,-1,0,...,0,1).
@end table

@itemize @bullet
@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.
@item $B7W;;$K$O(B Assi, Castro, Granger $B$N%"%k%4%j%:%`$rMQ$$$k(B.
@item Geometric slope $B$r7W;;$9$k$?$a(B, radical $B$N7W;;$r$*$3$J$C$F$$$k(B.
$B$3$l$K$O(B ox_asir $B$rMQ$$$F$$$k(B.
@end itemize

@example
In(13)= a=GKZ([[1,3,7]],[-30]);
In(14)= a:
[    x1*Dx1+3*x2*Dx2+7*x3*Dx3+30 , -Dx1^3+Dx2 , -Dx1*Dx2^2+Dx3 , -Dx2^3+Dx1^2*Dx3 ] 
In(15)= Slope(a,[x1,x2,x3],[0,0,0,1,1,1],[0,0,-1,0,0,1]):
[    [    (3)/(4) , [    0 , 0 , -4 , 3 , 3 , 7 ]  ]  ] 


@end example

@table @t
@item $B;2>H(B
@item Files
    @code{lib/restriction/demo2.k}
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Slope %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/