Changeset d97527 in git


Ignore:
Timestamp:
Jan 29, 2003, 8:13:36 PM (21 years ago)
Author:
Viktor Levandovskyy <levandov@…>
Branches:
(u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
Children:
f49ee6feb3fddafcdda5d98c40b25f3f82a38afa
Parents:
b197b0615f7540efadd8e7aa8dc224ddfcb0d24b
Message:
noncomm syzygies


git-svn-id: file:///usr/local/Singular/svn/trunk@6445 2c84dea3-7e68-4137-9b89-c4e89433aadc
Location:
Singular
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • Singular/extra.cc

    rb197b06 rd97527  
    22*  Computer Algebra System SINGULAR      *
    33*****************************************/
    4 /* $Id: extra.cc,v 1.194 2003-01-29 17:51:27 Singular Exp $ */
     4/* $Id: extra.cc,v 1.195 2003-01-29 19:13:35 levandov Exp $ */
    55/*
    66* ABSTRACT: general interface to internals of Singular ("system" command)
     
    14551455          for(j=i+1;j<=currRing->N;j++)
    14561456          {
    1457             MATELEM(C,i,j)=pCopy(pN);
     1457            MATELEM(C,i,j) = nc_p_CopyPut(pN,currRing);
     1458            //  MATELEM(C,i,j)=pCopy(pN);
    14581459          }
    14591460        }
     
    15011502          for(j=i+1;j<=currRing->N;j++)
    15021503          {
    1503             MATELEM(D,i,j)=pCopy(pN);
     1504            MATELEM(D,i,j) = nc_p_CopyPut(pN,currRing);
     1505            //      MATELEM(D,i,j)=pCopy(pN);
    15041506          }
    15051507        }
     
    15191521      int IsSkewConstant=1;
    15201522      int IsNonComm=0;
    1521       pN=MATELEM(currRing->nc->C,1,2);
     1523      pN=nc_p_CopyGet(MATELEM(currRing->nc->C,1,2),currRing);
     1524      //      pN=MATELEM(currRing->nc->C,1,2);
     1525                   
    15221526      for(i=1;i<currRing->N;i++)
    15231527      {
     
    15481552          pSetExp(p,j,1);
    15491553          pSetm(p);
    1550           p=pAdd(p,pCopy(MATELEM(currRing->nc->D,i,j)));
    1551           MATELEM(currRing->nc->MT[UPMATELEM(i,j,currRing->N)],1,1)=p;
     1554          //      p=pAdd(p,pCopy(MATELEM(currRing->nc->D,i,j)));
     1555          p=pAdd(p,nc_p_CopyGet(MATELEM(currRing->nc->D,i,j),currRing));
     1556          //      MATELEM(currRing->nc->MT[UPMATELEM(i,j,currRing->N)],1,1)=p;
     1557          MATELEM(currRing->nc->MT[UPMATELEM(i,j,currRing->N)],1,1)=nc_p_CopyPut(p,currRing);
     1558          pDelete(&p);
    15521559          p=NULL;
    15531560        }
  • Singular/gring.cc

    rb197b06 rd97527  
    77 *  Author:  levandov (Viktor Levandovsky)
    88 *  Created: 8/00 - 11/00
    9  *  Version: $Id: gring.cc,v 1.21 2003-01-29 17:49:29 Singular Exp $
     9 *  Version: $Id: gring.cc,v 1.22 2003-01-29 19:13:36 levandov Exp $
    1010 *******************************************************************/
    1111#include "mod2.h"
     
    2121#include "kstd1.h"
    2222#include "sbuckets.h"
     23#include "prCopy.h"
    2324
    2425/* global nc_macros : */
     
    9596    if (expP==0)
    9697    {
    97       if (expM==0)
    98       {
    99         expOut=0;
    100       }
    101       else
    102       {
    103         expOut=expM;
    104       }
     98      expOut=expM;
    10599    }
    106100    else
     
    175169    if (expP==0)
    176170    {
    177       if (expM==0)
    178       {
    179         expOut=0;
    180       }
    181       else
    182       {
    183         expOut=expM;
    184       }
     171      expOut=expM;
    185172    }
    186173    else
     
    637624  if (((a<cMTsize)&&(b<cMTsize))&&(MATELEM(cMT,a,b)!=NULL))
    638625  {
    639     out=p_Copy(MATELEM(cMT,a,b),r);
     626    out = prCopyR_NoSort(MATELEM(cMT,a,b),r->nc->basering, r);
     627    //   out=p_Copy(MATELEM(cMT,a,b),r);
    640628    return (out);
    641629  }
    642630
    643   /*  poly C=MATELEM(r->nc->C,j,i);               */
    644   /*  number c=p_GetCoeff(C,r); //coeff           */
    645   /*  p_Delete(&C,r); */
    646 
    647631  int newcMTsize=0;
    648   int k,m;
     632  int k,l,m;
    649633
    650634  if (a>=b) {newcMTsize=a;} else {newcMTsize=b;}
     
    653637     newcMTsize = newcMTsize+cMTsize;
    654638     matrix tmp = mpNew(newcMTsize,newcMTsize);
    655 
     639     l=UPMATELEM(j,i,r->N);
    656640     for (k=1;k<=cMTsize;k++)
    657641     {
    658642        for (m=1;m<=cMTsize;m++)
    659643        {
    660            MATELEM(tmp,k,m) = MATELEM(r->nc->MT[UPMATELEM(j,i,r->N)],k,m);
    661            //           omCheckAddr(tmp->m);
    662            MATELEM(r->nc->MT[UPMATELEM(j,i,r->N)],k,m)=NULL;
    663            //           omCheckAddr(r->nc->MT[UPMATELEM(j,i,r->N)]->m);
     644          MATELEM(tmp,k,m) = nc_p_CopyPut(MATELEM(r->nc->MT[l],k,m),r);
     645          //      MATELEM(tmp,k,m) = MATELEM(r->nc->MT[l],k,m);
     646          //           omCheckAddr(tmp->m);
     647          //      MATELEM(r->nc->MT[l],k,m)=NULL;
     648          p_Delete(&MATELEM(r->nc->MT[l],k,m),r);
     649          //           omCheckAddr(r->nc->MT[UPMATELEM(j,i,r->N)]->m);
    664650        }
    665651     }
    666      id_Delete((ideal *)&(r->nc->MT[UPMATELEM(j,i,r->N)]),r);
    667      r->nc->MT[UPMATELEM(j,i,r->N)] = tmp;
    668      r->nc->MTsize[UPMATELEM(j,i,r->N)] = newcMTsize;
     652     id_Delete((ideal *)&(r->nc->MT[l]),r->nc->basering);
     653     r->nc->MT[l] = tmp;
     654     r->nc->MTsize[l] = newcMTsize;
    669655  }  /* The update of multiplication matrix is finished */
    670656
     
    679665  for (k=2;k<=a;k++)
    680666  {
    681      t=MATELEM(cMT,k,1);
     667     t = nc_p_CopyGet(MATELEM(cMT,k,1),r);
    682668
    683669     if (t==NULL)   /* not computed yet */
    684670     {
    685         t=p_Copy(MATELEM(cMT,k-1,1),r);
    686         t = nc_mm_Mult_p(y,t,r);
    687         MATELEM(cMT,k,1) = t;
    688         //        omCheckAddr(cMT->m);
     671       t = nc_p_CopyGet(MATELEM(cMT,k-1,1),r);
     672       //        t=p_Copy(MATELEM(cMT,k-1,1),r);
     673       t = nc_mm_Mult_p(y,t,r);
     674       MATELEM(cMT,k,1) = nc_p_CopyPut(t,r);
     675       //        omCheckAddr(cMT->m);
     676       p_Delete(&t,r);
    689677     }
    690678     t=NULL;
     
    693681  for (m=2;m<=b;m++)
    694682  {
    695      t=MATELEM(cMT,a,m);
    696      if (t==NULL)   //not computed yet
    697      {
    698         t=p_Copy(MATELEM(cMT,a,m-1),r);
    699         t = nc_p_Mult_mm(t,x,r);
    700         MATELEM(cMT,a,m) = t;
    701         //        omCheckAddr(cMT->m);
    702      }
    703      t=NULL;
     683    t = nc_p_CopyGet(MATELEM(cMT,a,m),r);
     684    //     t=MATELEM(cMT,a,m);
     685    if (t==NULL)   //not computed yet
     686    {
     687      t = nc_p_CopyGet(MATELEM(cMT,a,m-1),r);
     688      //      t=p_Copy(MATELEM(cMT,a,m-1),r);
     689      t = nc_p_Mult_mm(t,x,r);
     690      MATELEM(cMT,a,m) = nc_p_CopyPut(t,r);
     691      //      MATELEM(cMT,a,m) = t;
     692      //        omCheckAddr(cMT->m);
     693      p_Delete(&t,r);
     694    }
     695    t=NULL;
    704696  }
    705697  p_Delete(&x,r);
    706698  p_Delete(&y,r);
    707   t=MATELEM(cMT,a,b);
    708   return(p_Copy(t,r));  /* as the last computed element was cMT[a,b] */
     699  //  t=MATELEM(cMT,a,b);
     700  t= nc_p_CopyGet(MATELEM(cMT,a,b),r);
     701  //  return(p_Copy(t,r)); 
     702  /* since the last computed element was cMT[a,b] */
     703  return(t);     
    709704}
    710705
     
    10601055  p_Test(pL,r);
    10611056  p_ExpVectorDiff(m1,pL,p1,r);
     1057  p_SetComp(m1,0,r);
    10621058  p_Setm(m1,r);
    10631059  p_Test(m1,r);
    10641060  p_ExpVectorDiff(m2,pL,p2,r);
     1061  p_SetComp(m2,0,r);
    10651062  p_Setm(m2,r);
    10661063  p_Test(m2,r);
     
    10991096  //  n_Delete(&C2,r);
    11001097  n_Delete(&MinusOne,r);
     1098  p_Test(M2,r);
    11011099  return(M2);
    11021100}
     
    11141112  poly m=pOne();
    11151113  p_ExpVectorDiff(m,Q,p1,r);
     1114  p_SetComp(m,0,r);
    11161115  p_Setm(m,r);
    11171116  p_Test(m,r);
     
    11511150  pLcm(p1,p2,m);
    11521151  p_Setm(m,r);
     1152  p_Test(m,r);
    11531153  return(m);
    11541154}
     
    15021502}
    15031503
     1504poly nc_p_CopyGet(poly a, ring r)
     1505/* for use in getting the mult. martix elements*/
     1506{
     1507  if (!rIsPluralRing(r)) return(p_Copy(a,r));
     1508  if (r==r->nc->basering) return(p_Copy(a,r));
     1509  else
     1510  {
     1511    return(prCopyR_NoSort(a,r->nc->basering,r));
     1512  }
     1513}
     1514
     1515poly nc_p_CopyPut(poly a, ring r)
     1516/* for use in defining the mult. martix elements*/
     1517{
     1518  if (!rIsPluralRing(r)) return(p_Copy(a,r));
     1519  if (r==r->nc->basering) return(p_Copy(a,r));
     1520  else
     1521  {
     1522    return(prCopyR_NoSort(a,r,r->nc->basering));
     1523  }
     1524}
     1525
     1526
    15041527#endif
  • Singular/gring.h

    rb197b06 rd97527  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: gring.h,v 1.16 2003-01-29 16:13:11 Singular Exp $ */
     6/* $Id: gring.h,v 1.17 2003-01-29 19:13:36 levandov Exp $ */
    77/*
    88* ABSTRACT additional defines etc for --with-plural
     
    2424poly nc_mm_Mult_uu (Exponent_t *F,int jG,int bG, const ring r);
    2525
    26 #define nc_uu_Mult_ww nc_uu_Mult_ww_horvert
     26#define nc_uu_Mult_ww nc_uu_Mult_ww_vert
    2727poly nc_uu_Mult_ww_vert (int i, int a, int j, int b, const ring r);
    2828poly nc_uu_Mult_ww_horvert (int i, int a, int j, int b, const ring r);
     
    3131
    3232poly _nc_p_Mult_q(poly p, poly q, const int copy, const ring r);
     33
     34//copy :
     35poly nc_p_CopyGet(poly a, ring r);
     36poly nc_p_CopyPut(poly a, ring r);
    3337
    3438//syzygies :
Note: See TracChangeset for help on using the changeset viewer.