Home Online Manual
Top
Back: crcgs
Forward: random_lib
FastBack:
FastForward:
Up: redcgs_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.2.9.14 cantodiffcgs

Procedure from library redcgs.lib (see redcgs_lib).

Usage:
canttodiffcgs(T);
T: is the list provided by mrcgs or crcgs or crcgs,

Return:
The list transforming the content of these routines to a simpler output where each segment corresponds to a single element of the list that is described as difference of two varieties.

The first element of the list is identical to the first element of the list provided by the corresponding cgs algorithm, and contains general information on the call (see mrcgs). The remaining elements are lists of 4 elements,
representing segments. These elements are
[1]: the lpp of the segment
[2]: the basis of the segment
[3]; the ideal of the first variety (radical)
[4]; the ideal of the second variety (radical)
The segment is V([3]) \ V([4]).

Note:
It can be called from the output of mrcgs or rcgs of crcgs

Example:
 
LIB "redcgs.lib";
ring R=(0,b,c,d,e,f),(x,y),dp;
ideal F=x^2+b*y^2+2*c*x*y+2*d*x+2*e*y+f, 2*x+2*c*y+2*d, 2*b*y+2*c*x+2*e;
def T=crcgs(F);
==> // ** redefining @R (  exportto(Top,@R);      // global ring K[a][x])
==> // ** redefining @R (  exportto(Top,@R);      // global ring K[a][x])
==> // ** redefining @P (  exportto(Top,@P);      // global ring K[a])
==> // ** redefining @RP (  exportto(Top,@RP);     // global ring K[x,a] with\
    product order)
==> // ** NP2 is no standard basis
==> // ** NP2 is no standard basis
==> // ** redefining @R (  exportto(Top,@R);      // global ring K[a][x])
==> // ** redefining @P (  exportto(Top,@P);      // global ring K[a])
==> // ** redefining @RP (  exportto(Top,@RP);     // global ring K[x,a] with\
    product order)
T;
==> [1]:
==>    [1]:
==>       0
==>    [2]:
==>       4
==>    [3]:
==>       _[1]=1
==>       _[2]=y
==>       _[3]=y
==>       _[4]=x
==>    [4]:
==>       _[1]=(bd2-bf+c2f-2cde+e2)
==>       _[2]=(cd-e)*y+(d2-f)
==>       _[3]=(b-c2)*y+(-cd+e)
==>       _[4]=x+(c)*y+(d)
==>    [5]:
==>       [1]:
==>          _[1]=0
==>       [2]:
==>          _[1]=0
==>       [3]:
==>          [1]:
==>             _[1]=0
==>    [6]:
==>       CRCGS
==> [2]:
==>    [1]:
==>       1
==>    [2]:
==>       1
==>    [3]:
==>       _[1]=1
==>    [4]:
==>       _[1]=1
==> [3]:
==>    [1]:
==>       1,1
==>    [2]:
==>       1
==>    [3]:
==>       _[1]=0
==> [4]:
==>    [1]:
==>       1,1,1
==>    [2]:
==>       0
==>    [3]:
==>       _[1]=(bd2-bf+c2f-2cde+e2)
==> [5]:
==>    [1]:
==>       2
==>    [2]:
==>       1
==>    [3]:
==>       _[1]=y
==>       _[2]=x
==>    [4]:
==>       _[1]=(b-c2)*y+(-cd+e)
==>       _[2]=(b-c2)*x+(bd-ce)
==> [6]:
==>    [1]:
==>       2,1
==>    [2]:
==>       1
==>    [3]:
==>       _[1]=(bd2-bf+c2f-2cde+e2)
==> [7]:
==>    [1]:
==>       2,1,1
==>    [2]:
==>       0
==>    [3]:
==>       _[1]=(cd-e)
==>       _[2]=(b-c2)
==> [8]:
==>    [1]:
==>       3
==>    [2]:
==>       1
==>    [3]:
==>       _[1]=1
==>    [4]:
==>       _[1]=1
==> [9]:
==>    [1]:
==>       3,1
==>    [2]:
==>       1
==>    [3]:
==>       _[1]=(cd-e)
==>       _[2]=(b-c2)
==> [10]:
==>    [1]:
==>       3,1,1
==>    [2]:
==>       0
==>    [3]:
==>       _[1]=(d2-f)
==>       _[2]=(cf-de)
==>       _[3]=(cd-e)
==>       _[4]=(b-c2)
==> [11]:
==>    [1]:
==>       4
==>    [2]:
==>       1
==>    [3]:
==>       _[1]=x
==>    [4]:
==>       _[1]=x+(c)*y+(d)
==> [12]:
==>    [1]:
==>       4,1
==>    [2]:
==>       1
==>    [3]:
==>       _[1]=(d2-f)
==>       _[2]=(cf-de)
==>       _[3]=(cd-e)
==>       _[4]=(b-c2)
==> [13]:
==>    [1]:
==>       4,1,1
==>    [2]:
==>       0
==>    [3]:
==>       _[1]=1
cantreetoMaple(T,"Tc","Tc.txt");
cantodiffcgs(T);
==> // ** redefining NP (    def NP=imap(RR,N);) redcgs.lib::cantodiffcgs:396\
   0
==> // ** redefining MP (    def MP=imap(RR,M);) redcgs.lib::cantodiffcgs:396\
   1
==> // ** redefining NP (    def NP=imap(RR,N);) redcgs.lib::cantodiffcgs:396\
   0
==> // ** redefining MP (    def MP=imap(RR,M);) redcgs.lib::cantodiffcgs:396\
   1
==> // ** redefining NP (    def NP=imap(RR,N);) redcgs.lib::cantodiffcgs:396\
   0
==> // ** redefining MP (    def MP=imap(RR,M);) redcgs.lib::cantodiffcgs:396\
   1
==> // ** redefining NP (    def NP=imap(RR,N);) redcgs.lib::cantodiffcgs:396\
   0
==> // ** redefining MP (    def MP=imap(RR,M);) redcgs.lib::cantodiffcgs:396\
   1
==> [1]:
==>    [1]:
==>       0
==>    [2]:
==>       4
==>    [3]:
==>       _[1]=1
==>       _[2]=y
==>       _[3]=y
==>       _[4]=x
==>    [4]:
==>       _[1]=(b*d^2-b*f+c^2*f-2*c*d*e+e^2)
==>       _[2]=(c*d-e)*y+(d^2-f)
==>       _[3]=(b-c^2)*y+(-c*d+e)
==>       _[4]=x+(c)*y+(d)
==>    [5]:
==>       [1]:
==>          _[1]=0
==>       [2]:
==>          _[1]=0
==>       [3]:
==>          [1]:
==>             _[1]=0
==>    [6]:
==>       CRCGS
==> [2]:
==>    [1]:
==>       _[1]=1
==>    [2]:
==>       _[1]=1
==>    [3]:
==>       _[1]=0
==>    [4]:
==>       _[1]=(b*d^2-b*f+c^2*f-2*c*d*e+e^2)
==> [3]:
==>    [1]:
==>       _[1]=y
==>       _[2]=x
==>    [2]:
==>       _[1]=(b-c^2)*y+(-c*d+e)
==>       _[2]=(b-c^2)*x+(b*d-c*e)
==>    [3]:
==>       _[1]=(b*d^2-b*f+c^2*f-2*c*d*e+e^2)
==>    [4]:
==>       _[1]=(c*d-e)
==>       _[2]=(b-c^2)
==> [4]:
==>    [1]:
==>       _[1]=1
==>    [2]:
==>       _[1]=1
==>    [3]:
==>       _[1]=(c*d-e)
==>       _[2]=(b-c^2)
==>    [4]:
==>       _[1]=(d^2-f)
==>       _[2]=(c*f-d*e)
==>       _[3]=(c*d-e)
==>       _[4]=(b-c^2)
==> [5]:
==>    [1]:
==>       _[1]=x
==>    [2]:
==>       _[1]=x+(c)*y+(d)
==>    [3]:
==>       _[1]=(d^2-f)
==>       _[2]=(c*f-d*e)
==>       _[3]=(c*d-e)
==>       _[4]=(b-c^2)
==>    [4]:
==>       _[1]=1