Changeset 44290e6 in git for Singular/LIB/invar.lib


Ignore:
Timestamp:
Sep 10, 1997, 9:52:55 AM (26 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', 'e7cc1ebecb61be8b9ca6c18016352af89940b21a')
Children:
e4dda1834ffae525b4f3d1fd395264cf974d924b
Parents:
6b76c234fa60b76f7d16f9ba2091e496804852a2
Message:
* hannes: changed reserved word mod in invar.lib to mo


git-svn-id: file:///usr/local/Singular/svn/trunk@688 2c84dea3-7e68-4137-9b89-c4e89433aadc
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/LIB/invar.lib

    r6b76c2 r44290e6  
    1 // $Id: invar.lib,v 1.1 1997-05-01 17:50:42 Singular Exp $
     1// $Id: invar.lib,v 1.2 1997-09-10 07:52:55 Singular Exp $
    22///////////////////////////////////////////////////////
    33// invar.lib
     
    142142
    143143
    144 proc reduction(poly p, ideal mod, list #)
    145 USAGE:   reduction(p,mod,q); p poly, mod ideal, q (optional) monomial
     144proc reduction(poly p, ideal mo, list #)
     145USAGE:   reduction(p,mo,q); p poly, mo ideal, q (optional) monomial
    146146RETURN:  poly= (p-H(f1,...,fr))/q^a, if Lt(p)=H(Lt(f1),...,Lt(fr)) for
    147147               some polynomial H in r variables over the base field,
    148148               a maximal such that q^a devides p-H(f1,...,fr),
    149                mod =(f1,...,fr)
     149               mo =(f1,...,fr)
    150150NOTE:   
    151151EXAMPLE: example reduction; shows an example
    152152{
    153153  int i;
    154   int z=size(mod);
     154  int z=size(mo);
    155155  def bsr=basering;
    156156 
     
    165165  execute "ring s="+charstr(basering)+",("+varstr(basering)+",@(0..z)),dp;";
    166166 
    167   //costructes the ideal mod=(p-@(0),mod[1]-@(1),...,mod[z]-@(z))
    168   ideal mod=imap(bsr,mod);
     167  //costructes the ideal mo=(p-@(0),mo[1]-@(1),...,mo[z]-@(z))
     168  ideal mo=imap(bsr,mo);
    169169  for (i=1;i<=z;i++)
    170170  {
    171     mod[i]=lead(mod[i])-var(nvars(bsr)+i+1);
    172   }
    173   mod=lead(imap(bsr,p))-@(0),mod;
     171    mo[i]=lead(mo[i])-var(nvars(bsr)+i+1);
     172  }
     173  mo=lead(imap(bsr,p))-@(0),mo;
    174174 
    175175  //eliminates the variables of the basering bsr
    176   //i.e. computes mod intersected with K[@(0),...,@(z)]
    177   ideal kern=eliminate(mod,imap(bsr,v));
     176  //i.e. computes mo intersected with K[@(0),...,@(z)]
     177  ideal kern=eliminate(mo,imap(bsr,v));
    178178
    179179  // test wether @(0)-h(@(1),...,@(z)) is in ker for some poly h
     
    186186     {
    187187        h=(1/h)*kern[i];
    188         // defines the map psi : s ---> bsr defined by @(i) ---> p,mod[i]
     188        // defines the map psi : s ---> bsr defined by @(i) ---> p,mo[i]
    189189        setring bsr;
    190         map psi=s,maxideal(1),p,mod;
     190        map psi=s,maxideal(1),p,mo;
    191191        poly re=psi(h);
    192192
     
    210210   ring q=0,(x,y,z,u,v,w),dp;
    211211   poly p=x2yz-x2v;
    212    ideal mod =x-w,u2w+1,yz-v;
    213    reduction(p,mod);
    214    reduction(p,mod,w);
    215 }
    216 
    217 ///////////////////////////////////////////////////////////////////////////////
    218 
    219 proc completeReduction(poly p, ideal mod, list #)
    220 USAGE:   completeReduction(p,mod,q); p poly, mod ideal,
     212   ideal mo =x-w,u2w+1,yz-v;
     213   reduction(p,mo);
     214   reduction(p,mo,w);
     215}
     216
     217///////////////////////////////////////////////////////////////////////////////
     218
     219proc completeReduction(poly p, ideal mo, list #)
     220USAGE:   completeReduction(p,mo,q); p poly, mo ideal,
    221221                                     q (optional) monomial
    222 RETURN:  poly= the polynomial p reduced with mod via the procedure
     222RETURN:  poly= the polynomial p reduced with mo via the procedure
    223223               reduction as long as possible
    224224NOTE:   
     
    226226{
    227227  poly p1=p;
    228   poly p2=reduction(p,mod,#);
     228  poly p2=reduction(p,mo,#);
    229229  while (p1!=p2)
    230230  {
    231231    p1=p2;
    232     p2=reduction(p1,mod,#);
     232    p2=reduction(p1,mo,#);
    233233  }
    234234  return(p2);
     
    238238   ring q=0,(x,y,z,u,v,w),dp;
    239239   poly p=x2yz-x2v;
    240    ideal mod =x-w,u2w+1,yz-v;
    241    completeReduction(p,mod);
    242    completeReduction(p,mod,w);
    243 }
    244 ///////////////////////////////////////////////////////////////////////////////
    245 
    246 proc inSubring(poly p, ideal mod)
    247 USAGE:   inSubring(p,mod); p poly, mod ideal
    248 RETURN:  list= 1,string(@(0)-h(@(1),...,@(size(mod)))) :if p = h(mod[1],...,mod[size(mod)])
    249               0,string(h(@(0),...,@(size(mod)))) :if there is only a nonlinear relation
    250               h(p,mod[1],...,mod[size(mod)])=0.
     240   ideal mo =x-w,u2w+1,yz-v;
     241   completeReduction(p,mo);
     242   completeReduction(p,mo,w);
     243}
     244///////////////////////////////////////////////////////////////////////////////
     245
     246proc inSubring(poly p, ideal mo)
     247USAGE:   inSubring(p,mo); p poly, mo ideal
     248RETURN:  list= 1,string(@(0)-h(@(1),...,@(size(mo)))) :if p = h(mo[1],...,mo[size(mo)])
     249              0,string(h(@(0),...,@(size(mo)))) :if there is only a nonlinear relation
     250              h(p,mo[1],...,mo[size(mo)])=0.
    251251NOTE:   
    252252EXAMPLE: example inSubring; shows an example
    253253{
    254   int z=size(mod);
     254  int z=size(mo);
    255255  int i;
    256256  def gnir=basering;
     
    262262  }
    263263  string eli=string(mile);
    264   // the intersection of ideal nett=(p-@(0),mod[1]-@(1),...)
     264  // the intersection of ideal nett=(p-@(0),mo[1]-@(1),...)
    265265  // with the ring k[@(0),...,@(n)] is computed, the result is ker
    266266  execute "ring r1="+charstr(basering)+",("+varstr(basering)+",@(0..z)),dp;";
    267   ideal nett=imap(gnir,mod);
     267  ideal nett=imap(gnir,mo);
    268268  poly p;
    269269  for (i=1;i<=z;i++)
     
    299299   ring q=0,(x,y,z,u,v,w),dp;
    300300   poly p=xyzu2w-1yzu2w2+u4w2-1xu2vw+u2vw2+xyz-1yzw+2u2w-1xv+vw+2;
    301    ideal mod =x-w,u2w+1,yz-v;
    302    inSubring(p,mod);
     301   ideal mo =x-w,u2w+1,yz-v;
     302   inSubring(p,mo);
    303303}
    304304
Note: See TracChangeset for help on using the changeset viewer.