[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.1, Thu Jan 4 12:29:32 2001 UTC (23 years, 5 months ago) by takayama
Branch: MAIN

A new online help generation system for kan/k0.

%% $OpenXM: OpenXM/src/k097/Doc/complex.texi,v 1.1 2001/01/04 12:29:32 takayama Exp $
/*&C
\input texinfo
@iftex
@catcode`@#=6
@def@b#1{{@bf@gt #1}}
@catcode`@#=@other
@end iftex
@overfullrule=0pt
@c -*-texinfo-*-
@comment %**start of header
@setfilename complex
@settitle complex
@comment %**end of header
@comment %@setchapternewpage odd

@iftex
@comment @finalout
@end iftex

@titlepage

*/

//&C @title  Kan/k0   complex
//&ja @subtitle Kan/k0 complex $B%Q%C%1!<%8(B User's Manual ($BF|K\8lHG(B)
//&en @subtitle Kan/k0 complex Package User's Manual
/*&C
@subtitle Edition 1.1.3 for OpenXM/kan/k0
@subtitle December 31, 2000

@author  by Nobuki Takayama
@end titlepage

@synindex vr fn

@comment  node-name,  next,  previous,  up
@node Top,, (dir), (dir)

*/

/*&ja

@menu
* COMPLEX $BH!?t(B::
* $B4pK\(B $BH!?t(B::
* $B:w0z(B::
@end menu

*/
/*&en

@menu
* COMPLEX function::
* Primitive function::
* index::
@end menu

*/
/*&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}.  
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Res_solv %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item Reference
    @code{Res_solv_h}, @code{Kernel},  @code{GetRing}, @code{SetRing}.  
@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}.  
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Res_solv2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item Reference
    @code{Res_solv2_h}, @code{Kernel2},  @code{GetRing}, @code{SetRing}.  
@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}. 
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Kernel %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item Reference
    @code{Kernel_h}, @code{Res_solv},  @code{GetRing}, @code{SetRing}. 
@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}. 
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Kernel2 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item Reference
    @code{Kernel2_h}, @code{Res_solv2},  @code{GetRing}, @code{SetRing},
    @code{Kernel} 
@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}. 
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Gb %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item Reference
    @code{Gb_h}, @code{Kernel}, @code{Res_solv}, @code{RingD}, 
    @code{GetRing}, @code{SetRing}. 
@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
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Res_shiftMatrix %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item Reference
   @code{Gb}, (m,(u,v))-Grobner basis
@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::
* GetRing::
* SetRing::
* 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
@c  %%%%%%%%%%%%%%%%%%%%  end of changeRing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/

/*&ja
@c %%%%%%%%%%%%%%%%%%%%  start of GetRing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* GetRing::
@end menu
@node GetRing,,, $B4pK\(B $BH!?t(B
@subsection @code{GetRing}
@findex GetRing
@table @t
@item GetRing(@var{f})
::  @var{f} $B$NMWAG$NB0$9$k4D$rLa$9(B.
@end table

@table @var
@item return
$B4D(B
@item f
$B%*%V%8%'%/%H(B
@end table

@itemize @bullet
@item  @var{f} $B$NMWAG$^$?$O(B @var{f} $B<+?H$NB0$9$k4D$rLa$9(B.
$B4D$,$J$$$H$-$O(B null $B$rLa$9(B.
@end itemize

@example
In(16)= RingD("x,y");
In(17)= r = GetRing([x^2,0,1]);
@end example

@table @t
@item $B;2>H(B
    @code{SetRing},   @code{ChangeRing}. 
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of GetRing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/

/*&ja
@c %%%%%%%%%%%%%%%%%%%%  start of SetRing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@menu
* SetRing::
@end menu
@node SetRing,,, $B4pK\(B $BH!?t(B
@subsection @code{SetRing}
@findex SetRing
@table @t
@item SetRing(@var{r})
::  Current ring $B$r(B @var{r} $B$KJQ99$9$k(B.
@end table

@table @var
@item return
$B$J$7(B
@item r
$B4D(B
@end table

@itemize @bullet
@item  Current ring $B$r(B @var{r} $B$KJQ99$9$k(B.
@end itemize

@example
In(16)= RingD("x,y");
In(17)= f=[x^2,0,1]; r = GetRing(f);
In(19)= RingD("p,q");
In(20)= SetRing(r);
In(21)= f = DC(f,"polynomial");
@end example

@table @t
@item $B;2>H(B
    @code{GetRing},   @code{ChangeRing}, @code{DC}. 
@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of SetRing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/

/*&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

@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

@end table
@c  %%%%%%%%%%%%%%%%%%%%  end of Getxvars %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
*/
/*&en

@table @t
@item Reference

@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

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

@table @t
@item Reference

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

/*&ja
@node $B:w0z(B,,, Top
@unnumbered $B:w0z(B
*/
/*&en
@node index,,, Top
@unnumbered index
*/
/*&C
@printindex fn
@printindex cp
@iftex
@vfill @eject
@end iftex
@summarycontents
@contents
@bye
*/