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