Changeset e801fe in git for Singular/LIB/invar.lib


Ignore:
Timestamp:
Feb 16, 1998, 1:07:04 PM (26 years ago)
Author:
Gerhard Pfister <pfister@…>
Branches:
(u'spielwiese', '2a584933abf2a2d3082034c7586d38bb6de1a30a')
Children:
1e7d8d9fbdaf1094cc869ca3a6be98b9e1fbfc9a
Parents:
437e2c21158af6efe6402cc1da62ee40760c03e0
Message:
* updated invar.lib normal.lib, merged prim_dec.lib with primdec.lib


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

Legend:

Unmodified
Added
Removed
  • Singular/LIB/invar.lib

    r437e2c2 re801fe  
    1 // $Id: invar.lib,v 1.3 1997-09-18 09:58:24 Singular Exp $
     1// $Id: invar.lib,v 1.4 1998-02-16 12:07:01 pfister Exp $
    22///////////////////////////////////////////////////////
    33// invar.lib
     
    77//////////////////////////////////////////////////////
    88
    9 LIBRARY: invar.lib PROCEDURE FOR COMPUTING INVARIANTS UNDER (C,+)-ACTIONS
     9LIBRARY: invar.lib PROCEDURES FOR COMPUTING INVARIANTS OF (C,+)-ACTIONS
    1010
    1111  invariantRing(matrix m,poly p,poly q,int choose)
     
    142142
    143143
    144 proc reduction(poly p, ideal mo, list #)
    145 USAGE:   reduction(p,mo,q); p poly, mo ideal, q (optional) monomial
     144proc reduction(poly p, ideal dom, list #)
     145USAGE:   reduction(p,dom,q); p poly, dom 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                mo =(f1,...,fr)
     149               dom =(f1,...,fr)
    150150NOTE:   
    151151EXAMPLE: example reduction; shows an example
    152152{
    153153  int i;
    154   int z=size(mo);
     154  int z=size(dom);
    155155  def bsr=basering;
    156156 
     
    165165  execute "ring s="+charstr(basering)+",("+varstr(basering)+",@(0..z)),dp;";
    166166 
    167   //costructes the ideal mo=(p-@(0),mo[1]-@(1),...,mo[z]-@(z))
    168   ideal mo=imap(bsr,mo);
     167  //costructes the ideal dom=(p-@(0),dom[1]-@(1),...,dom[z]-@(z))
     168  ideal dom=imap(bsr,dom);
    169169  for (i=1;i<=z;i++)
    170170  {
    171     mo[i]=lead(mo[i])-var(nvars(bsr)+i+1);
    172   }
    173   mo=lead(imap(bsr,p))-@(0),mo;
     171    dom[i]=lead(dom[i])-var(nvars(bsr)+i+1);
     172  }
     173  dom=lead(imap(bsr,p))-@(0),dom;
    174174 
    175175  //eliminates the variables of the basering bsr
    176   //i.e. computes mo intersected with K[@(0),...,@(z)]
    177   ideal kern=eliminate(mo,imap(bsr,v));
     176  //i.e. computes dom intersected with K[@(0),...,@(z)]
     177  ideal kern=eliminate(dom,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,mo[i]
     188        // defines the map psi : s ---> bsr defined by @(i) ---> p,dom[i]
    189189        setring bsr;
    190         map psi=s,maxideal(1),p,mo;
     190        map psi=s,maxideal(1),p,dom;
    191191        poly re=psi(h);
    192192
     
    210210   ring q=0,(x,y,z,u,v,w),dp;
    211211   poly p=x2yz-x2v;
    212    ideal mo =x-w,u2w+1,yz-v;
    213    reduction(p,mo);
    214    reduction(p,mo,w);
    215 }
    216 
    217 ///////////////////////////////////////////////////////////////////////////////
    218 
    219 proc completeReduction(poly p, ideal mo, list #)
    220 USAGE:   completeReduction(p,mo,q); p poly, mo ideal,
     212   ideal dom =x-w,u2w+1,yz-v;
     213   reduction(p,dom);
     214   reduction(p,dom,w);
     215}
     216
     217///////////////////////////////////////////////////////////////////////////////
     218
     219proc completeReduction(poly p, ideal dom, list #)
     220USAGE:   completeReduction(p,dom,q); p poly, dom ideal,
    221221                                     q (optional) monomial
    222 RETURN:  poly= the polynomial p reduced with mo via the procedure
     222RETURN:  poly= the polynomial p reduced with dom via the procedure
    223223               reduction as long as possible
    224224NOTE:   
     
    226226{
    227227  poly p1=p;
    228   poly p2=reduction(p,mo,#);
     228  poly p2=reduction(p,dom,#);
    229229  while (p1!=p2)
    230230  {
    231231    p1=p2;
    232     p2=reduction(p1,mo,#);
     232    p2=reduction(p1,dom,#);
    233233  }
    234234  return(p2);
     
    238238   ring q=0,(x,y,z,u,v,w),dp;
    239239   poly p=x2yz-x2v;
    240    ideal mo =x-w,u2w+1,yz-v;
    241    completeReduction(p,mo);
    242    completeReduction(p,mo,w);
    243 }
    244 ///////////////////////////////////////////////////////////////////////////////
    245 
    246 proc inSubring(poly p, ideal mo)
    247 USAGE:   inSubring(p,mo); p poly, mo ideal
    248 RETURN:  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.
     240   ideal dom =x-w,u2w+1,yz-v;
     241   completeReduction(p,dom);
     242   completeReduction(p,dom,w);
     243}
     244///////////////////////////////////////////////////////////////////////////////
     245
     246proc inSubring(poly p, ideal dom)
     247USAGE:   inSubring(p,dom); p poly, dom ideal
     248RETURN:  list= 1,string(@(0)-h(@(1),...,@(size(dom)))) :if p = h(dom[1],...,dom[size(dom)])
     249              0,string(h(@(0),...,@(size(dom)))) :if there is only a nonlinear relation
     250              h(p,dom[1],...,dom[size(dom)])=0.
    251251NOTE:   
    252252EXAMPLE: example inSubring; shows an example
    253253{
    254   int z=size(mo);
     254  int z=size(dom);
    255255  int i;
    256256  def gnir=basering;
     
    262262  }
    263263  string eli=string(mile);
    264   // the intersection of ideal nett=(p-@(0),mo[1]-@(1),...)
     264  // the intersection of ideal nett=(p-@(0),dom[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,mo);
     267  ideal nett=imap(gnir,dom);
    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 mo =x-w,u2w+1,yz-v;
    302    inSubring(p,mo);
     301   ideal dom =x-w,u2w+1,yz-v;
     302   inSubring(p,dom);
    303303}
    304304
     
    478478     "                     ";
    479479     karl;
    480     pause;
     480    // pause;
    481481     "                     ";
    482482  }
     
    517517       "                                  ";
    518518       karl;
    519       pause;
     519      // pause;
    520520       "                                  ";
    521521    }
     
    643643 
    644644}
    645 ///////////////////////////////////////////////////////////////////////////////
Note: See TracChangeset for help on using the changeset viewer.