Changeset 107986 in git


Ignore:
Timestamp:
Jul 25, 2008, 4:37:55 PM (15 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a657104b677b4c461d018cbf3204d72d34ad66a9')
Children:
356960f1a09d63bc25ab2b04269bb1f6ce67fd28
Parents:
7a6c062bb1546ba06ab19b759243b02e83b52197
Message:
*hannes: part stuff ,const ring


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

Legend:

Unmodified
Added
Removed
  • kernel/kutil.cc

    r7a6c06 r107986  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: kutil.cc,v 1.102 2008-07-24 10:26:21 Singular Exp $ */
     4/* $Id: kutil.cc,v 1.103 2008-07-25 14:37:55 Singular Exp $ */
    55/*
    66* ABSTRACT: kernel: utils for kStd
     
    159159  if (pGetComp(p) == pGetComp(q))
    160160  {
     161#ifdef HAVE_PLURAL
     162    if (currRing->real_var_start>0)
     163    {
     164      if (_p_LmDivisibleByPart(p,currRing,
     165                           q,currRing,
     166                           currRing->real_var_start, currRing->real_var_end))
     167        return 0;
     168      return pLmCmp(q,p); // ONLY FOR GLOBAL ORDER!
     169    }
     170#endif
    161171    BOOLEAN a=FALSE, b=FALSE;
    162172    int i;
     
    185195      }
    186196    }
    187     if (a) return 1;
    188     if (b) return -1;
     197    if (a) { /*assume(pLmCmp(q,p)==1);*/ return 1; }
     198    if (b) { /*assume(pLmCmp(q,p)==-1);*/return -1; }
     199    /*assume(pLmCmp(q,p)==0);*/
    189200  }
    190201  return 0;
     
    19141925            && (!pLmEqual(strat->L[i].p,strat->L[l].p))
    19151926            && pDivisibleBy(p,strat->L[l].lcm))
     1927            {
     1928              /*
     1929              *"NOT equal(...)" because in case of "equal" the element L[l]
     1930              *is "older" and has to be from theoretical point of view behind
     1931              *L[i], but we do not want to reorder L
     1932              */
     1933              strat->L[i].p2 = strat->tail;
     1934              /*
     1935              *L[l] will be canceled, we cannot cancel L[i] later on,
     1936              *so we mark it with "tail"
     1937              */
     1938              deleteInL(strat->L,&strat->Ll,l,strat);
     1939              i--;
     1940            }
     1941            else
     1942            {
     1943              deleteInL(strat->L,&strat->Ll,i,strat);
     1944            }
     1945            j--;
     1946          }
     1947          i--;
     1948        }
     1949      }
     1950      else if (strat->L[j].p2 == strat->tail)
     1951      {
     1952        /*now L[j] cannot be canceled any more and the tail can be removed*/
     1953        strat->L[j].p2 = p;
     1954      }
     1955      j--;
     1956    }
     1957  }
     1958}
     1959void chainCritPart (poly p,int ecart,kStrategy strat)
     1960{
     1961  int i,j,l;
     1962
     1963  /*
     1964  *pairtest[i] is TRUE if spoly(S[i],p) == 0.
     1965  *In this case all elements in B such
     1966  *that their lcm is divisible by the leading term of S[i] can be canceled
     1967  */
     1968  if (strat->pairtest!=NULL)
     1969  {
     1970    {
     1971      /*- i.e. there is an i with pairtest[i]==TRUE -*/
     1972      for (j=0; j<=strat->sl; j++)
     1973      {
     1974        if (strat->pairtest[j])
     1975        {
     1976          for (i=strat->Bl; i>=0; i--)
     1977          {
     1978            if (_p_LmDivisibleByPart(strat->S[j],currRing,
     1979               strat->B[i].lcm,currRing,
     1980               currRing->real_var_start,currRing->real_var_end))
     1981            {
     1982              deleteInL(strat->B,&strat->Bl,i,strat);
     1983              strat->c3++;
     1984            }
     1985          }
     1986        }
     1987      }
     1988    }
     1989    omFreeSize(strat->pairtest,(strat->sl+2)*sizeof(BOOLEAN));
     1990    strat->pairtest=NULL;
     1991  }
     1992  if (strat->Gebauer || strat->fromT)
     1993  {
     1994    if (strat->sugarCrit)
     1995    {
     1996    /*
     1997    *suppose L[j] == (s,r) and p/lcm(s,r)
     1998    *and lcm(s,r)#lcm(s,p) and lcm(s,r)#lcm(r,p)
     1999    *and in case the sugar is o.k. then L[j] can be canceled
     2000    */
     2001      for (j=strat->Ll; j>=0; j--)
     2002      {
     2003        if (sugarDivisibleBy(ecart,strat->L[j].ecart)
     2004        && ((pNext(strat->L[j].p) == strat->tail) || (pOrdSgn==1))
     2005        && pCompareChainPart(p,strat->L[j].p1,strat->L[j].p2,strat->L[j].lcm))
     2006        {
     2007          if (strat->L[j].p == strat->tail)
     2008          {
     2009              deleteInL(strat->L,&strat->Ll,j,strat);
     2010              strat->c3++;
     2011          }
     2012        }
     2013      }
     2014      /*
     2015      *this is GEBAUER-MOELLER:
     2016      *in B all elements with the same lcm except the "best"
     2017      *(i.e. the last one in B with this property) will be canceled
     2018      */
     2019      j = strat->Bl;
     2020      loop /*cannot be changed into a for !!! */
     2021      {
     2022        if (j <= 0) break;
     2023        i = j-1;
     2024        loop
     2025        {
     2026          if (i <  0) break;
     2027          if (pLmEqual(strat->B[j].lcm,strat->B[i].lcm))
     2028          {
     2029            strat->c3++;
     2030            if (sugarDivisibleBy(strat->B[j].ecart,strat->B[i].ecart))
     2031            {
     2032              deleteInL(strat->B,&strat->Bl,i,strat);
     2033              j--;
     2034            }
     2035            else
     2036            {
     2037              deleteInL(strat->B,&strat->Bl,j,strat);
     2038              break;
     2039            }
     2040          }
     2041          i--;
     2042        }
     2043        j--;
     2044      }
     2045    }
     2046    else /*sugarCrit*/
     2047    {
     2048      /*
     2049      *suppose L[j] == (s,r) and p/lcm(s,r)
     2050      *and lcm(s,r)#lcm(s,p) and lcm(s,r)#lcm(r,p)
     2051      *and in case the sugar is o.k. then L[j] can be canceled
     2052      */
     2053      for (j=strat->Ll; j>=0; j--)
     2054      {
     2055        if (pCompareChainPart(p,strat->L[j].p1,strat->L[j].p2,strat->L[j].lcm))
     2056        {
     2057          if ((pNext(strat->L[j].p) == strat->tail)||(pOrdSgn==1))
     2058          {
     2059            deleteInL(strat->L,&strat->Ll,j,strat);
     2060            strat->c3++;
     2061          }
     2062        }
     2063      }
     2064      /*
     2065      *this is GEBAUER-MOELLER:
     2066      *in B all elements with the same lcm except the "best"
     2067      *(i.e. the last one in B with this property) will be canceled
     2068      */
     2069      j = strat->Bl;
     2070      loop   /*cannot be changed into a for !!! */
     2071      {
     2072        if (j <= 0) break;
     2073        for(i=j-1; i>=0; i--)
     2074        {
     2075          if (pLmEqual(strat->B[j].lcm,strat->B[i].lcm))
     2076          {
     2077            strat->c3++;
     2078            deleteInL(strat->B,&strat->Bl,i,strat);
     2079            j--;
     2080          }
     2081        }
     2082        j--;
     2083      }
     2084    }
     2085    /*
     2086    *the elements of B enter L/their order with respect to B is kept
     2087    *j = posInL(L,j,B[i]) would permutate the order
     2088    *if once B is ordered different from L
     2089    *then one should use j = posInL(L,Ll,B[i])
     2090    */
     2091    j = strat->Ll+1;
     2092    for (i=strat->Bl; i>=0; i--)
     2093    {
     2094      j = strat->posInL(strat->L,j-1,&(strat->B[i]),strat);
     2095      enterL(&strat->L,&strat->Ll,&strat->Lmax,strat->B[i],j);
     2096    }
     2097    strat->Bl = -1;
     2098  }
     2099  else
     2100  {
     2101    for (j=strat->Ll; j>=0; j--)
     2102    {
     2103      if (pCompareChainPart(p,strat->L[j].p1,strat->L[j].p2,strat->L[j].lcm))
     2104      {
     2105        if ((pNext(strat->L[j].p) == strat->tail)||(pOrdSgn==1))
     2106        {
     2107          deleteInL(strat->L,&strat->Ll,j,strat);
     2108          strat->c3++;
     2109        }
     2110      }
     2111    }
     2112    /*
     2113    *this is our MODIFICATION of GEBAUER-MOELLER:
     2114    *First the elements of B enter L,
     2115    *then we fix a lcm and the "best" element in L
     2116    *(i.e the last in L with this lcm and of type (s,p))
     2117    *and cancel all the other elements of type (r,p) with this lcm
     2118    *except the case the element (s,r) has also the same lcm
     2119    *and is on the worst position with respect to (s,p) and (r,p)
     2120    */
     2121    /*
     2122    *B enters to L/their order with respect to B is permutated for elements
     2123    *B[i].p with the same leading term
     2124    */
     2125    j = strat->Ll;
     2126    for (i=strat->Bl; i>=0; i--)
     2127    {
     2128      j = strat->posInL(strat->L,j,&(strat->B[i]),strat);
     2129      enterL(&strat->L,&strat->Ll,&strat->Lmax,strat->B[i],j);
     2130    }
     2131    strat->Bl = -1;
     2132    j = strat->Ll;
     2133    loop  /*cannot be changed into a for !!! */
     2134    {
     2135      if (j <= 0)
     2136      {
     2137        /*now L[0] cannot be canceled any more and the tail can be removed*/
     2138        if (strat->L[0].p2 == strat->tail) strat->L[0].p2 = p;
     2139        break;
     2140      }
     2141      if (strat->L[j].p2 == p)
     2142      {
     2143        i = j-1;
     2144        loop
     2145        {
     2146          if (i < 0)  break;
     2147          if ((strat->L[i].p2 == p) && pLmEqual(strat->L[j].lcm,strat->L[i].lcm))
     2148          {
     2149            /*L[i] could be canceled but we search for a better one to cancel*/
     2150            strat->c3++;
     2151            if (isInPairsetL(i-1,strat->L[j].p1,strat->L[i].p1,&l,strat)
     2152            && (pNext(strat->L[l].p) == strat->tail)
     2153            && (!pLmEqual(strat->L[i].p,strat->L[l].p))
     2154            && _p_LmDivisibleByPart(p,currRing,
     2155                           strat->L[l].lcm,currRing,
     2156                           currRing->real_var_start, currRing->real_var_end))
     2157
    19162158            {
    19172159              /*
  • kernel/p_polys.cc

    r7a6c06 r107986  
    77 *  Author:  obachman (Olaf Bachmann)
    88 *  Created: 8/00
    9  *  Version: $Id: p_polys.cc,v 1.12 2007-11-16 18:37:28 Singular Exp $
     9 *  Version: $Id: p_polys.cc,v 1.13 2008-07-25 14:37:55 Singular Exp $
    1010 *******************************************************************/
    1111
     
    230230* the ordering is compatible with degree, use a->order
    231231*/
    232 inline long _pDeg(poly a, ring r)
     232inline long _pDeg(poly a, const ring r)
    233233{
    234234  p_LmCheckPolyRing(a, r);
     
    237237}
    238238
    239 long pDeg(poly a, ring r)
     239long pDeg(poly a, const ring r)
    240240{
    241241  return _pDeg(a, r);
     
    248248* the ordering is not compatible with degree so do not use p->Order
    249249*/
    250 inline long _pTotaldegree(poly p, ring r)
     250inline long _pTotaldegree(poly p, const ring r)
    251251{
    252252  p_LmCheckPolyRing(p, r);
    253253  return (long) p_ExpVectorQuerSum(p, r);
    254254}
    255 long pTotaldegree(poly p, ring r)
     255long pTotaldegree(poly p, const ring r)
    256256{
    257257  return (long) _pTotaldegree(p, r);
     
    260260// pWTotalDegree for weighted orderings
    261261// whose first block covers all variables
    262 inline long _pWFirstTotalDegree(poly p, ring r)
     262inline long _pWFirstTotalDegree(poly p, const ring r)
    263263{
    264264  int i;
     
    272272}
    273273
    274 long pWFirstTotalDegree(poly p, ring r)
     274long pWFirstTotalDegree(poly p, const ring r)
    275275{
    276276  return (long) _pWFirstTotalDegree(p, r);
     
    282282* the ordering is not compatible with degree so do not use p->Order
    283283*/
    284 long pWTotaldegree(poly p, ring r)
     284long pWTotaldegree(poly p, const ring r)
    285285{
    286286  p_LmCheckPolyRing(p, r);
     
    366366}
    367367
    368 long pWDegree(poly p, ring r)
     368long pWDegree(poly p, const ring r)
    369369{
    370370  if (r->firstwv==NULL) return pTotaldegree(p, r);
     
    391391* and the degree of the monomial with maximal degree: the last one
    392392*/
    393 long pLDeg0(poly p,int *l, ring r)
     393long pLDeg0(poly p,int *l, const ring r)
    394394{
    395395  p_CheckPolyRing(p, r);
     
    422422* but search in all components before syzcomp
    423423*/
    424 long pLDeg0c(poly p,int *l, ring r)
     424long pLDeg0c(poly p,int *l, const ring r)
    425425{
    426426  assume(p!=NULL);
     
    467467* (both c,dp and dp,c)
    468468*/
    469 long pLDegb(poly p,int *l, ring r)
     469long pLDegb(poly p,int *l, const ring r)
    470470{
    471471  p_CheckPolyRing(p, r);
     
    497497* this is NOT the last one, we have to look for it
    498498*/
    499 long pLDeg1(poly p,int *l, ring r)
     499long pLDeg1(poly p,int *l, const ring r)
    500500{
    501501  p_CheckPolyRing(p, r);
     
    533533* in all components
    534534*/
    535 long pLDeg1c(poly p,int *l, ring r)
     535long pLDeg1c(poly p,int *l, const ring r)
    536536{
    537537  p_CheckPolyRing(p, r);
     
    566566
    567567// like pLDeg1, only pFDeg == pDeg
    568 long pLDeg1_Deg(poly p,int *l, ring r)
     568long pLDeg1_Deg(poly p,int *l, const ring r)
    569569{
    570570  assume(r->pFDeg == pDeg);
     
    597597}
    598598
    599 long pLDeg1c_Deg(poly p,int *l, ring r)
     599long pLDeg1c_Deg(poly p,int *l, const ring r)
    600600{
    601601  assume(r->pFDeg == pDeg);
     
    631631
    632632// like pLDeg1, only pFDeg == pTotoalDegree
    633 long pLDeg1_Totaldegree(poly p,int *l, ring r)
     633long pLDeg1_Totaldegree(poly p,int *l, const ring r)
    634634{
    635635  p_CheckPolyRing(p, r);
     
    661661}
    662662
    663 long pLDeg1c_Totaldegree(poly p,int *l, ring r)
     663long pLDeg1c_Totaldegree(poly p,int *l, const ring r)
    664664{
    665665  p_CheckPolyRing(p, r);
     
    694694
    695695// like pLDeg1, only pFDeg == pWFirstTotalDegree
    696 long pLDeg1_WFirstTotalDegree(poly p,int *l, ring r)
     696long pLDeg1_WFirstTotalDegree(poly p,int *l, const ring r)
    697697{
    698698  p_CheckPolyRing(p, r);
     
    724724}
    725725
    726 long pLDeg1c_WFirstTotalDegree(poly p,int *l, ring r)
     726long pLDeg1c_WFirstTotalDegree(poly p,int *l, const ring r)
    727727{
    728728  p_CheckPolyRing(p, r);
     
    763763
    764764static inline unsigned long
    765 p_GetMaxExpL2(unsigned long l1, unsigned long l2, ring r,
     765p_GetMaxExpL2(unsigned long l1, unsigned long l2, const ring r,
    766766              unsigned long number_of_exp)
    767767{
     
    789789
    790790static inline unsigned long
    791 p_GetMaxExpL2(unsigned long l1, unsigned long l2, ring r)
     791p_GetMaxExpL2(unsigned long l1, unsigned long l2, const ring r)
    792792{
    793793  return p_GetMaxExpL2(l1, l2, r, r->ExpPerLong);
    794794}
    795795
    796 poly p_GetMaxExpP(poly p, ring r)
     796poly p_GetMaxExpP(poly p, const ring r)
    797797{
    798798  p_CheckPolyRing(p, r);
     
    831831}
    832832
    833 unsigned long p_GetMaxExpL(poly p, ring r, unsigned long l_max)
     833unsigned long p_GetMaxExpL(poly p, const ring r, unsigned long l_max)
    834834{
    835835  unsigned long l_p, divmask = r->divmask;
     
    864864 ***************************************************************/
    865865// returns TRUE, if all monoms have the same component
    866 BOOLEAN p_OneComp(poly p, ring r)
     866BOOLEAN p_OneComp(poly p, const ring r)
    867867{
    868868  if(p!=NULL)
     
    952952* returns a polynomial representing the integer i
    953953*/
    954 poly p_ISet(int i, ring r)
     954poly p_ISet(int i, const ring r)
    955955{
    956956  poly rc = NULL;
     
    969969* destroys n
    970970*/
    971 poly p_NSet(number n, ring r)
     971poly p_NSet(number n, const ring r)
    972972{
    973973  if (r->cf->nIsZero(n))
  • kernel/polys-impl.cc

    r7a6c06 r107986  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: polys-impl.cc,v 1.2 2005-12-02 12:25:43 Singular Exp $ */
     4/* $Id: polys-impl.cc,v 1.3 2008-07-25 14:37:55 Singular Exp $ */
    55
    66/***************************************************************
     
    4747
    4848
    49 void ppDelete(poly* p, ring rg)
     49void ppDelete(poly* p, const ring rg)
    5050{
    5151  ring origRing = currRing;
  • kernel/polys.cc

    r7a6c06 r107986  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: polys.cc,v 1.33 2008-07-15 15:29:15 wienand Exp $ */
     4/* $Id: polys.cc,v 1.34 2008-07-25 14:37:55 Singular Exp $ */
    55
    66/*
     
    209209* convert monomial given as string to poly, e.g. 1x3y5z
    210210*/
    211 const char * p_Read(const char *st, poly &rc, ring r)
     211const char * p_Read(const char *st, poly &rc, const ring r)
    212212{
    213213  if (r==NULL) { rc=NULL;return st;}
     
    782782*normalize all coefficients
    783783*/
    784 void p_Normalize(poly p, ring r)
     784void p_Normalize(poly p,const ring r)
    785785{
    786786  if (rField_has_simple_inverse(r)) return; /* Z/p, GF(p,n), R, long R/C */
     
    10411041  return FALSE;
    10421042}
     1043BOOLEAN pCompareChainPart (poly p,poly p1,poly p2,poly lcm)
     1044{
     1045  int k, j;
     1046
     1047  if (lcm==NULL) return FALSE;
     1048
     1049  for (j=currRing->real_var_end; j>=currRing->real_var_start; j--)
     1050    if ( pGetExp(p,j) >  pGetExp(lcm,j)) return FALSE;
     1051  if ( pGetComp(p) !=  pGetComp(lcm)) return FALSE;
     1052  for (j=currRing->real_var_end; j>=currRing->real_var_start; j--)
     1053  {
     1054    if (pGetExp(p1,j)!=pGetExp(lcm,j))
     1055    {
     1056      if (pGetExp(p,j)!=pGetExp(lcm,j))
     1057      {
     1058        for (k=pVariables; k>j; k--)
     1059        for (k=currRing->real_var_end; k>j; k--)
     1060        {
     1061          if ((pGetExp(p,k)!=pGetExp(lcm,k))
     1062          && (pGetExp(p2,k)!=pGetExp(lcm,k)))
     1063            return TRUE;
     1064        }
     1065        for (k=j-1; k>=currRing->real_var_start; k--)
     1066        {
     1067          if ((pGetExp(p,k)!=pGetExp(lcm,k))
     1068          && (pGetExp(p2,k)!=pGetExp(lcm,k)))
     1069            return TRUE;
     1070        }
     1071        return FALSE;
     1072      }
     1073    }
     1074    else if (pGetExp(p2,j)!=pGetExp(lcm,j))
     1075    {
     1076      if (pGetExp(p,j)!=pGetExp(lcm,j))
     1077      {
     1078        for (k=currRing->real_var_end; k>j; k--)
     1079        {
     1080          if ((pGetExp(p,k)!=pGetExp(lcm,k))
     1081          && (pGetExp(p1,k)!=pGetExp(lcm,k)))
     1082            return TRUE;
     1083        }
     1084        for (k=j-1; k>=currRing->real_var_start; k--)
     1085        {
     1086          if ((pGetExp(p,k)!=pGetExp(lcm,k))
     1087          && (pGetExp(p1,k)!=pGetExp(lcm,k)))
     1088            return TRUE;
     1089        }
     1090        return FALSE;
     1091      }
     1092    }
     1093  }
     1094  return FALSE;
     1095}
    10431096
    10441097int pSize(poly p)
  • kernel/polys.h

    r7a6c06 r107986  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: polys.h,v 1.16 2008-03-19 17:44:11 Singular Exp $ */
     6/* $Id: polys.h,v 1.17 2008-07-25 14:37:55 Singular Exp $ */
    77/*
    88* ABSTRACT - all basic methods to manipulate polynomials of the
     
    302302extern pFDegProc pFDeg;
    303303int  pWeight(int c, const ring r = currRing);
    304 long pDeg(poly p, ring r = currRing);
    305 long pTotaldegree(poly p, ring r = currRing);
    306 long pWTotaldegree(poly p, ring r = currRing);
    307 long pWDegree(poly p, ring r = currRing);
    308 long pLDeg0(poly p,int *l, ring r = currRing);
    309 long pLDeg0c(poly p,int *l, ring r = currRing);
    310 long pLDegb(poly p,int *l, ring r = currRing);
    311 long pLDeg1(poly p,int *l, ring r = currRing);
    312 long pLDeg1c(poly p,int *l, ring r = currRing);
    313 long pLDeg1_Deg(poly p,int *l, ring r = currRing);
    314 long pLDeg1c_Deg(poly p,int *l, ring r = currRing);
    315 long pLDeg1_Totaldegree(poly p,int *l, ring r = currRing);
    316 long pLDeg1c_Totaldegree(poly p,int *l, ring r = currRing);
    317 long pLDeg1_WFirstTotalDegree(poly p,int *l, ring r=currRing);
    318 long pLDeg1c_WFirstTotalDegree(poly p,int *l, ring r=currRing);
     304long pDeg(poly p,const ring r = currRing);
     305long pTotaldegree(poly p,const ring r = currRing);
     306long pWTotaldegree(poly p,const ring r = currRing);
     307long pWDegree(poly p,const ring r = currRing);
     308long pLDeg0(poly p,int *l,const ring r = currRing);
     309long pLDeg0c(poly p,int *l,const ring r = currRing);
     310long pLDegb(poly p,int *l,const ring r = currRing);
     311long pLDeg1(poly p,int *l,const ring r = currRing);
     312long pLDeg1c(poly p,int *l,const ring r = currRing);
     313long pLDeg1_Deg(poly p,int *l,const ring r = currRing);
     314long pLDeg1c_Deg(poly p,int *l,const ring r = currRing);
     315long pLDeg1_Totaldegree(poly p,int *l,const ring r = currRing);
     316long pLDeg1c_Totaldegree(poly p,int *l,const ring r = currRing);
     317long pLDeg1_WFirstTotalDegree(poly p,int *l,const ring r=currRing);
     318long pLDeg1c_WFirstTotalDegree(poly p,int *l,const ring r=currRing);
    319319
    320320/*-------------pComp for syzygies:-------------------*/
     
    326326
    327327poly      pmInit(const char *s, BOOLEAN &ok); /* monom -> poly, interpreter */
    328 const char *    p_Read(const char *s, poly &p, ring r); /* monom -> poly */
    329 void      ppDelete(poly * a, ring r);
     328const char *    p_Read(const char *s, poly &p,const ring r); /* monom -> poly */
     329void      ppDelete(poly * a,const ring r);
    330330
    331331/*-------------operations on polynomials:------------*/
     
    364364void      pCleardenom(poly p);
    365365void      pCleardenom_n(poly p,number &c);
    366 void      p_Normalize(poly p, ring r);
     366void      p_Normalize(poly p,const ring r);
    367367#define   pNormalize(p) p_Normalize(p,currRing)
    368368int       pSize( poly p );
     
    385385void      pCancelPolyByMonom (poly p1,poly p2,polyset * P,int * SizeOfSet);
    386386
    387 poly      pPermPoly (poly p, int * perm, ring OldRing, nMapFunc nMap,
     387poly      pPermPoly (poly p, int * perm,const ring OldRing, nMapFunc nMap,
    388388                     int *par_perm=NULL, int OldPar=0);
    389389
     
    427427/*-----------specials for spoly-computations--------------*/
    428428BOOLEAN pCompareChain (poly p,poly p1,poly p2,poly lcm);
     429BOOLEAN pCompareChainPart (poly p,poly p1,poly p2,poly lcm);
    429430#define  pEqualPolys(p1,p2) p_EqualPolys(p1,p2,currRing)
    430431BOOLEAN pComparePolys(poly p1,poly p2);
  • kernel/polys1.cc

    r7a6c06 r107986  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: polys1.cc,v 1.31 2008-02-06 09:12:47 wienand Exp $ */
     4/* $Id: polys1.cc,v 1.32 2008-07-25 14:37:55 Singular Exp $ */
    55
    66/*
     
    12401240*returns a re-ordered copy of a polynomial, with permutation of the variables
    12411241*/
    1242 poly pPermPoly (poly p, int * perm, ring oldRing, nMapFunc nMap,
     1242poly pPermPoly (poly p, int * perm, const ring oldRing, nMapFunc nMap,
    12431243   int *par_perm, int OldPar)
    12441244{
Note: See TracChangeset for help on using the changeset viewer.