Changeset e10683 in git for Singular/polys.cc


Ignore:
Timestamp:
Nov 30, 2000, 5:46:09 PM (23 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'spielwiese', '17f1d200f27c5bd38f5dfc6e8a0879242279d1d8')
Children:
379305282702a4d34d62437d3dfe5bf09925c710
Parents:
50268a871f223956bed4c2b84352e38f543a574b
Message:
*hannes: pmInit stuff


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

Legend:

Unmodified
Added
Removed
  • Singular/polys.cc

    r50268a re10683  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: polys.cc,v 1.68 2000-11-09 16:32:53 obachman Exp $ */
     4/* $Id: polys.cc,v 1.69 2000-11-30 16:46:09 Singular Exp $ */
    55
    66/*
     
    5555  pLDeg=r->pLDeg;
    5656  pLexOrder=r->LexOrder;
    57  
     57
    5858  if (complete)
    5959  {
     
    140140* convert monomial given as string to poly, e.g. 1x3y5z
    141141*/
    142 poly pmInit(char *st, BOOLEAN &ok)
     142char * p_Read(char *st, poly &rc, ring r)
    143143{
    144144  int i,j;
    145   ok=FALSE;
    146   BOOLEAN b=FALSE;
    147   poly rc = pInit();
    148   char *s = nRead(st,&(rc->coef));
     145  rc = p_Init(r);
     146  char *s = r->cf->nRead(st,&(rc->coef));
    149147  if (s==st)
    150148  /* i.e. it does not start with a coeff: test if it is a ringvar*/
     
    154152    {
    155153      pIncrExp(rc,1+j);
     154      while (*s!='\0') s++;
    156155      goto done;
    157156    }
    158157  }
    159   else
    160     b=TRUE;
    161158  while (*s!='\0')
    162159  {
     
    164161    ss[0] = *s++;
    165162    ss[1] = '\0';
    166     j = rIsRingVar(ss);
     163    j = r_IsRingVar(ss,r);
    167164    if (j >= 0)
    168165    {
    169166      s = eati(s,&i);
    170       pAddExp(rc,1+j, (Exponent_t)i);
     167      p_AddExp(rc,1+j, (Exponent_t)i, r);
    171168    }
    172169    else
    173170    {
    174       if ((s!=st)&&isdigit(st[0]))
    175       {
    176         errorreported=TRUE;
    177       }
    178       pDelete(&rc);
    179       return NULL;
     171      s--;
     172      return s;
    180173    }
    181174  }
    182175done:
     176  if (r->cf->nIsZero(pGetCoeff(rc))) p_DeleteLm(&rc,r);
     177  else
     178  {
     179    p_Setm(rc,r);
     180  }
     181  return s;
     182}
     183
     184poly pmInit(char *st, BOOLEAN &ok)
     185{
     186  poly p;
     187  char *s=p_Read(st,p,currRing);
     188  if (*s!='\0')
     189  {
     190    if ((s!=st)&&isdigit(st[0]))
     191    {
     192      errorreported=TRUE;
     193    }
     194    ok=FALSE;
     195    pDelete(&p);
     196    return NULL;
     197  }
    183198  ok=!errorreported;
    184   if (nIsZero(pGetCoeff(rc))) pDeleteLm(&rc);
    185   else
    186   {
    187     pSetm(rc);
    188   }
    189   return rc;
     199  return p;
    190200}
    191201
     
    229239  return q;
    230240}
    231 
    232241
    233242/*2
Note: See TracChangeset for help on using the changeset viewer.