Changeset 1134b5 in git


Ignore:
Timestamp:
Apr 19, 2007, 2:52:17 PM (16 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', '0604212ebb110535022efecad887940825b97c3f')
Children:
bb9a5a2a1df0eacab065576595d4d0635e0ecae1
Parents:
fccc2cf5940d8517759ffec19729c2a215514510
Message:
*hannes: i++, i--, substitute


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

Legend:

Unmodified
Added
Removed
  • Singular/LIB/poly.lib

    rfccc2c r1134b5  
    11///////////////////////////////////////////////////////////////////////////////
    2 version="$Id: poly.lib,v 1.41 2007-01-23 15:03:37 Singular Exp $";
     2version="$Id: poly.lib,v 1.42 2007-04-19 12:52:17 Singular Exp $";
    33category="General purpose";
    44info="
     
    104104@*       - case 2: ring variables in v substituted by polynomials in f:
    105105           v[i] is substituted by f[i], i=1,...,i=min(size(v),ncols(f))
    106 NOTE:    this procedure extends the built-in command subst which substitutes
    107          ring variables only by monomials
     106NOTE:    this procedure extends the built-in command subst via maps
    108107EXAMPLE: example substitute; shows an example
    109108"
    110 
    111 {
    112    def bas = basering;
    113    ideal m = maxideal(1);
    114    int i,ii;
    115    if(typeof(#[1])=="poly")
    116    {
    117      poly v = #[1];
    118      poly f = #[2];
    119      map phi = bas,m;
    120      def J = I;
    121      for (ii=1; ii<=size(#) - 1; ii=ii+2)
    122      {
    123         m = maxideal(1);
    124         i=rvar(#[ii]);
    125         m[i] = #[ii+1];
    126         phi = bas,m;
    127         J = phi(J);
    128      }
    129      return(J);
    130    }
    131    if(typeof(#[1])=="ideal")
    132    {
    133      ideal v = #[1];
    134      ideal f = #[2];
    135      int mi = size(v);
    136      if(ncols(f)<mi)
    137      {
    138         mi = ncols(f);
    139      }
    140      m[rvar(v[1])]=f[1];
    141      map phi = bas,m;
    142      def J = phi(I);
    143      for (ii=2; ii<=mi; ii++)
    144      {
    145         m = maxideal(1);
    146         m[rvar(v[ii])]=f[ii];
    147         phi = bas,m;
    148         J = phi(J);
    149      }
    150      return(J);
    151    }
     109{
     110  def bas = basering;
     111  ideal m = maxideal(1);
     112  int i,ii;
     113  if(typeof(#[1])=="poly")
     114  {
     115    poly v = #[1];
     116    poly f = #[2];
     117    map phi = bas,m;
     118    def J = I;
     119    for (ii=1; ii<=size(#) - 1; ii=ii+2)
     120    {
     121      m = maxideal(1);
     122      i=rvar(#[ii]);
     123      m[i] = #[ii+1];
     124      phi = bas,m;
     125      J = phi(J);
     126    }
     127    return(J);
     128  }
     129  if(typeof(#[1])=="ideal")
     130  {
     131    ideal v = #[1];
     132    ideal f = #[2];
     133    int mi = size(v);
     134    if(ncols(f)<mi)
     135    {
     136      mi = ncols(f);
     137    }
     138    m[rvar(v[1])]=f[1];
     139    map phi = bas,m;
     140    def J = phi(I);
     141    for (ii=2; ii<=mi; ii++)
     142    {
     143      m = maxideal(1);
     144      m[rvar(v[ii])]=f[ii];
     145      phi = bas,m;
     146      J = phi(J);
     147    }
     148    return(J);
     149  }
    152150}
    153151example
     
    172170   int i,j;
    173171   ideal s; poly t;
    174    for ( j=0; j<=n-2; j=j+1 )
     172   for ( j=0; j<=n-2; j++ )
    175173   {
    176174      t=0;
    177       for( i=1;i<=n;i=i+1 ) { t=t+product(m,i..i+j); }
     175      for( i=1;i<=n;i++ ) { t=t+product(m,i..i+j); }
    178176      s=s+t;
    179177   }
     
    310308  int d=dim(std(#[1]));
    311309  int a = ( d==-1 );
    312   if( size(#) >1 ) { list L=a,d; return(L); }
     310  if( size(#) >1 ) { return(list(a,d)); }
    313311  return(a);
    314312}
     
    336334   i = simplify(i,6);            // delete 0's and keep first of equal elements
    337335   poly m = var(1); matrix C;
    338    for (ii=2;ii<=nvars(basering);ii=ii+1) { m = m*var(ii); }
    339    for (ii=1; ii<=size(i); ii=ii+1)
     336   for (ii=2;ii<=nvars(basering);ii++) { m = m*var(ii); }
     337   for (ii=1; ii<=size(i); ii++)
    340338   {
    341339      C = coef(i[ii],m);
    342       for (jj=1; jj<=ncols(C); jj=jj+1)
     340      for (jj=1; jj<=ncols(C); jj++)
    343341      {
    344342         t = string(C[2,jj]);  s = size(t);
     
    397395   int r,c = nrows(M), ncols(M); int i,j;
    398396   intmat m[r][c];
    399    for (i=r; i>0; i=i-1)
    400    {
    401       for (j=c; j>0; j=j-1) { m[i,j] = findmaxdeg(M[i,j]); }
     397   for (i=r; i>0; i--)
     398   {
     399      for (j=c; j>0; j--) { m[i,j] = findmaxdeg(M[i,j]); }
    402400   }
    403401   if (typeof(id)=="poly") { return(m[1,1]); }
     
    466464   {
    467465      int m = maxdeg(M[c]);
    468       for (i=c-1; i>0; i=i-1)
     466      for (i=c-1; i>0; i--)
    469467      {
    470468          n = maxdeg(M[i]);
     
    533531   int r,c = nrows(M), ncols(M); int i,j;
    534532   intmat m[r][c];
    535    for (i=r; i>0; i=i-1)
    536    {
    537       for (j=c; j>0; j=j-1) { m[i,j] = findmindeg(M[i,j]); }
     533   for (i=r; i>0; i--)
     534   {
     535      for (j=c; j>0; j--) { m[i,j] = findmindeg(M[i,j]); }
    538536   }
    539537   if (typeof(id)=="poly") { return(m[1,1]); }
     
    602600   {
    603601      int m = mindeg(M[c]);
    604       for (i=c-1; i>0; i=i-1)
     602      for (i=c-1; i>0; i--)
    605603      {
    606604          n = mindeg(M[i]);
     
    612610      intvec v=#[1];                          //weight vector for the variables
    613611      int m = findmindeg(M[c],v);
    614       for (i=c-1; i>0; i=i-1)
     612      for (i=c-1; i>0; i--)
    615613      {
    616614         n = findmindeg(M[i],v);
Note: See TracChangeset for help on using the changeset viewer.