Changeset c880d63 in git


Ignore:
Timestamp:
Nov 16, 2000, 5:56:20 PM (24 years ago)
Author:
Hans Schönemann <hannes@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'b4f17ed1d25f93d46dbe29e4b499baecc2fd51bb')
Children:
62fd53cec458e099a9121f16ac8739afbec4235d
Parents:
133c5d3687bc9924340e9a7cbd2da5491585849a
Message:
*hannes: n_Procs


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

Legend:

Unmodified
Added
Removed
  • Singular/longalg.cc

    r133c5d rc880d63  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: longalg.cc,v 1.45 2000-11-14 16:04:58 obachman Exp $ */
     4/* $Id: longalg.cc,v 1.46 2000-11-16 16:56:20 Singular Exp $ */
    55/*
    66* ABSTRACT:   algebraic numbers
     
    136136    if (complete)
    137137    {
    138       npSetChar(-i);
     138      npSetChar(-i, currRing->algring); // to be changes HS
    139139      nacInit        = npInit;
    140140      nacInt         = npInt;
  • Singular/modulop.cc

    r133c5d rc880d63  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: modulop.cc,v 1.17 2000-09-18 09:19:18 obachman Exp $ */
     4/* $Id: modulop.cc,v 1.18 2000-11-16 16:54:25 Singular Exp $ */
    55/*
    66* ABSTRACT: numbers modulo p (<=32003)
     
    4747number npInit (int i)
    4848{
    49   while (i <  0)        i += npPrimeM;
    50   while (i >= npPrimeM) i -= npPrimeM;
     49  while (i <  0)                   i += npPrimeM;
     50  while ((i>1) && (i >= npPrimeM)) i -= npPrimeM;
    5151  return (number)i;
    5252}
     
    201201*/
    202202
    203 void npSetChar(int c)
     203void npSetChar(int c, ring r)
    204204{
    205205  int i, w;
  • Singular/modulop.h

    r133c5d rc880d63  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: modulop.h,v 1.10 2000-03-02 18:44:39 Singular Exp $ */
     6/* $Id: modulop.h,v 1.11 2000-11-16 16:52:37 Singular Exp $ */
    77/*
    88* ABSTRACT: numbers modulo p (<=32003)
     
    3434BOOLEAN npDBTest      (number a, char *f, int l);
    3535#endif
    36 void    npSetChar(int c);
     36void    npSetChar(int c, ring r);
     37void    npInitChar(int c, ring r);
     38
    3739//int     npGetChar();
    3840
  • Singular/numbers.cc

    r133c5d rc880d63  
    22*  Computer Algebra System SINGULAR      *
    33*****************************************/
    4 /* $Id: numbers.cc,v 1.22 1999-11-15 17:20:36 obachman Exp $ */
     4/* $Id: numbers.cc,v 1.23 2000-11-16 16:52:02 Singular Exp $ */
    55
    66/*
     
    6363int    nChar;
    6464
     65
     66n_Procs_s *cf_root=NULL;
     67
    6568void   nDummy1(number* d) { *d=NULL; }
    6669
     
    110113    nName = ndName;
    111114  }
    112   //Print("n:c=%d compl=%d param=%d\n",c,complete,r->parameter);
    113   //if ((c == 1) || (c< (-1)))
    114115  if (rField_is_Extension(r))
    115116  {
     
    213214    if (complete)
    214215    {
    215       npSetChar(c);
     216      npSetChar(c, r);
    216217      test &= ~Sy_bit(OPT_INTSTRATEGY); /*26*/
    217218      nNew   = nDummy1;
     
    436437}
    437438
     439/*2
     440* init operations for ring r
     441*/
     442void nInitChar(ring r)
     443{
     444  int c=rInternalChar(r);
     445  n_coeffType t=rFieldType(r);
     446
     447  if (rField_is_Extension(r))
     448  {
     449    if (r->algring==NULL)
     450    {
     451      r->algring=(ring) omAlloc0Bin(sip_sring_bin);
     452      r->algring->ch= -c;
     453      r->algring->N=r->P;
     454      nInitChar(r->algring);
     455    }
     456  }
     457
     458  n_Procs_s *n=cf_root;
     459  while((n!=NULL)
     460    && (n->nChar!=c)
     461    && (n->type!=t))
     462      n=n->next;
     463  if (n==NULL)
     464  {
     465    n=(n_Procs_s*)omAlloc0(sizeof(n_Procs_s));
     466    n->next=cf_root;
     467    n->ref=1;
     468    n->nChar=c;
     469    n->type=t;
     470    cf_root=n;
     471  }
     472  else
     473  {
     474    n->ref++;
     475    r->cf=n;
     476    return;
     477  }
     478  r->cf=n;
     479  r->cf->nChar = c;
     480  r->cf->nPar  = ndPar;
     481  r->cf->nParDeg=ndParDeg;
     482  r->cf->nSize = ndSize;
     483  r->cf->nGetDenom= ndGetDenom;
     484  r->cf->nName =  ndName;
     485  if (rField_is_Extension(r))
     486  {
     487    //naSetChar(c,TRUE,r->parameter,rPar(r));
     488#ifdef LDEBUG
     489    r->cf->nDBDelete = naDBDelete;
     490#else
     491    r->cf->nDelete = naDelete;
     492#endif
     493    r->cf-> nNew       = naNew;
     494    r->cf-> nNormalize = naNormalize;
     495    r->cf->nInit       = naInit;
     496    r->cf->nPar        = naPar;
     497    r->cf->nParDeg     = naParDeg;
     498    r->cf->nInt        = naInt;
     499    r->cf->nAdd        = naAdd;
     500    r->cf->nSub        = naSub;
     501    r->cf->nMult       = naMult;
     502    r->cf->nDiv        = naDiv;
     503    r->cf->nExactDiv   = naDiv;
     504    r->cf->nIntDiv     = naIntDiv;
     505    r->cf->nIntMod     = ndIntMod; /* dummy !! */
     506    r->cf->nNeg        = naNeg;
     507    r->cf->nInvers     = naInvers;
     508    r->cf->nCopy       = naCopy;
     509    r->cf->nGreater    = naGreater;
     510    r->cf->nEqual      = naEqual;
     511    r->cf->nIsZero     = naIsZero;
     512    r->cf->nIsOne      = naIsOne;
     513    r->cf->nIsMOne     = naIsMOne;
     514    r->cf->nGreaterZero= naGreaterZero;
     515    r->cf->nWrite      = naWrite;
     516    r->cf->nRead       = naRead;
     517    r->cf->nPower      = naPower;
     518    r->cf->nGcd        = naGcd;
     519    r->cf->nLcm        = naLcm;
     520    r->cf->nSetMap     = naSetMap;
     521    r->cf->nName       = naName;
     522    r->cf->nSize       = naSize;
     523    r->cf->nGetDenom   = naGetDenom;
     524#ifdef LDEBUG
     525    r->cf->nDBTest     = naDBTest;
     526#endif
     527  }
     528  else if (rField_is_Q(r))
     529  {
     530#ifdef LDEBUG
     531    r->cf->nDBDelete= nlDBDelete;
     532#else
     533    r->cf->nDelete= nlDelete;
     534#endif
     535    r->cf->nNew   = nlNew;
     536    r->cf->nNormalize=nlNormalize;
     537    r->cf->nInit  = nlInit;
     538    r->cf->nInt   = nlInt;
     539    r->cf->nAdd   = nlAdd;
     540    r->cf->nSub   = nlSub;
     541    r->cf->nMult  = nlMult;
     542    r->cf->nDiv   = nlDiv;
     543    r->cf->nExactDiv= nlExactDiv;
     544    r->cf->nIntDiv= nlIntDiv;
     545    r->cf->nIntMod= nlIntMod;
     546    r->cf->nNeg   = nlNeg;
     547    r->cf->nInvers= nlInvers;
     548    r->cf->nCopy  = nlCopy;
     549    r->cf->nGreater = nlGreater;
     550    r->cf->nEqual = nlEqual;
     551    r->cf->nIsZero = nlIsZero;
     552    r->cf->nIsOne = nlIsOne;
     553    r->cf->nIsMOne = nlIsMOne;
     554    r->cf->nGreaterZero = nlGreaterZero;
     555    r->cf->nWrite = nlWrite;
     556    r->cf->nRead = nlRead;
     557    r->cf->nPower = nlPower;
     558    r->cf->nGcd  = nlGcd;
     559    r->cf->nLcm  = nlLcm;
     560    r->cf->nSetMap = nlSetMap;
     561    r->cf->nSize  = nlSize;
     562    r->cf->nGetDenom = nlGetDenom;
     563#ifdef LDEBUG
     564    r->cf->nDBTest=nlDBTest;
     565#endif
     566  }
     567  else if (rField_is_Zp(r))
     568  /*----------------------char. p----------------*/
     569  {
     570#ifdef LDEBUG
     571    r->cf->nDBDelete= nDBDummy1;
     572#else
     573    r->cf->nDelete= nDummy1;
     574#endif
     575    npInitChar(c,r);
     576    r->cf->nNew   = nDummy1;
     577    r->cf->nNormalize=nDummy2;
     578    r->cf->nInit  = npInit;
     579    r->cf->nInt   = npInt;
     580    r->cf->nAdd   = npAdd;
     581    r->cf->nSub   = npSub;
     582    r->cf->nMult  = npMult;
     583    r->cf->nDiv   = npDiv;
     584    r->cf->nExactDiv= npDiv;
     585    r->cf->nIntDiv= npDiv;
     586    r->cf->nIntMod= ndIntMod; /* dummy !! */
     587    r->cf->nNeg   = npNeg;
     588    r->cf->nInvers= npInvers;
     589    r->cf->nCopy  = ndCopy;
     590    r->cf->nGreater = npGreater;
     591    r->cf->nEqual = npEqual;
     592    r->cf->nIsZero = npIsZero;
     593    r->cf->nIsOne = npIsOne;
     594    r->cf->nIsMOne = npIsMOne;
     595    r->cf->nGreaterZero = npGreaterZero;
     596    r->cf->nWrite = npWrite;
     597    r->cf->nRead = npRead;
     598    r->cf->nPower = npPower;
     599    r->cf->nGcd  = ndGcd;
     600    r->cf->nLcm  = ndGcd; /* tricky, isn't it ?*/
     601    r->cf->nSetMap = npSetMap;
     602    /* nName= ndName; */
     603    /*nSize  = ndSize;*/
     604#ifdef LDEBUG
     605    r->cf->nDBTest=npDBTest;
     606#endif
     607  }
     608  /* -------------- GF(p^m) -----------------------*/
     609  else if (rField_is_GF(r))
     610  {
     611#ifdef LDEBUG
     612    r->cf->nDBDelete= nDBDummy1;
     613#else
     614    r->cf->nDelete= nDummy1;
     615#endif
     616    //nfSetChar(c,r->parameter);
     617    r->cf->nNew   = nDummy1;
     618    r->cf->nNormalize=nDummy2;
     619    r->cf->nInit  = nfInit;
     620    r->cf->nPar   = nfPar;
     621    r->cf->nParDeg= nfParDeg;
     622    r->cf->nInt   = nfInt;
     623    r->cf->nAdd   = nfAdd;
     624    r->cf->nSub   = nfSub;
     625    r->cf->nMult  = nfMult;
     626    r->cf->nDiv   = nfDiv;
     627    r->cf->nExactDiv= nfDiv;
     628    r->cf->nIntDiv= nfDiv;
     629    r->cf->nIntMod= ndIntMod; /* dummy !! */
     630    r->cf->nNeg   = nfNeg;
     631    r->cf->nInvers= nfInvers;
     632    r->cf->nCopy  = ndCopy;
     633    r->cf->nGreater = nfGreater;
     634    r->cf->nEqual = nfEqual;
     635    r->cf->nIsZero = nfIsZero;
     636    r->cf->nIsOne = nfIsOne;
     637    r->cf->nIsMOne = nfIsMOne;
     638    r->cf->nGreaterZero = nfGreaterZero;
     639    r->cf->nWrite = nfWrite;
     640    r->cf->nRead = nfRead;
     641    r->cf->nPower = nfPower;
     642    r->cf->nGcd  = ndGcd;
     643    r->cf->nLcm  = ndGcd; /* tricky, isn't it ?*/
     644    r->cf->nSetMap = nfSetMap;
     645    r->cf->nName= nfName;
     646    /*nSize  = ndSize;*/
     647#ifdef LDEBUG
     648    r->cf->nDBTest=nfDBTest;
     649#endif
     650  }
     651  /* -------------- R -----------------------*/
     652  //if (c==(-1))
     653  else if (rField_is_R(r))
     654  {
     655#ifdef LDEBUG
     656    r->cf->nDBDelete= nDBDummy1;
     657#else
     658    r->cf->nDelete= nDummy1;
     659#endif
     660    r->cf->nNew=nDummy1;
     661    r->cf->nNormalize=nDummy2;
     662    r->cf->nInit  = nrInit;
     663    r->cf->nInt   = nrInt;
     664    r->cf->nAdd   = nrAdd;
     665    r->cf->nSub   = nrSub;
     666    r->cf->nMult  = nrMult;
     667    r->cf->nDiv   = nrDiv;
     668    r->cf->nExactDiv= nrDiv;
     669    r->cf->nIntDiv= nrDiv;
     670    r->cf->nIntMod= ndIntMod; /* dummy !! */
     671    r->cf->nNeg   = nrNeg;
     672    r->cf->nInvers= nrInvers;
     673    r->cf->nCopy  = ndCopy;
     674    r->cf->nGreater = nrGreater;
     675    r->cf->nEqual = nrEqual;
     676    r->cf->nIsZero = nrIsZero;
     677    r->cf->nIsOne = nrIsOne;
     678    r->cf->nIsMOne = nrIsMOne;
     679    r->cf->nGreaterZero = nrGreaterZero;
     680    r->cf->nWrite = nrWrite;
     681    r->cf->nRead = nrRead;
     682    r->cf->nPower = nrPower;
     683    r->cf->nGcd  = ndGcd;
     684    r->cf->nLcm  = ndGcd; /* tricky, isn't it ?*/
     685    r->cf->nSetMap=nrSetMap;
     686    /* nName= ndName; */
     687    /*nSize  = ndSize;*/
     688#ifdef LDEBUG
     689    r->cf->nDBTest=nrDBTest;
     690#endif
     691  }
     692  /* -------------- long R -----------------------*/
     693  else if (rField_is_long_R(r))
     694  {
     695    //setGMPFloatDigits(r->ch_flags);
     696#ifdef LDEBUG
     697    r->cf->nDBDelete= ngfDBDelete;
     698#else
     699    r->cf->nDelete= ngfDelete;
     700#endif
     701    r->cf->nNew=ngfNew;
     702    r->cf->nNormalize=nDummy2;
     703    r->cf->nInit  = ngfInit;
     704    r->cf->nInt   = ngfInt;
     705    r->cf->nAdd   = ngfAdd;
     706    r->cf->nSub   = ngfSub;
     707    r->cf->nMult  = ngfMult;
     708    r->cf->nDiv   = ngfDiv;
     709    r->cf->nExactDiv= ngfDiv;
     710    r->cf->nIntDiv= ngfDiv;
     711    r->cf->nIntMod= ndIntMod; /* dummy !! */
     712    r->cf->nNeg   = ngfNeg;
     713    r->cf->nInvers= ngfInvers;
     714    r->cf->nCopy  = ngfCopy;
     715    r->cf->nGreater = ngfGreater;
     716    r->cf->nEqual = ngfEqual;
     717    r->cf->nIsZero = ngfIsZero;
     718    r->cf->nIsOne = ngfIsOne;
     719    r->cf->nIsMOne = ngfIsMOne;
     720    r->cf->nGreaterZero = ngfGreaterZero;
     721    r->cf->nWrite = ngfWrite;
     722    r->cf->nRead = ngfRead;
     723    r->cf->nPower = ngfPower;
     724    r->cf->nGcd  = ndGcd;
     725    r->cf->nLcm  = ndGcd; /* tricky, isn't it ?*/
     726    r->cf->nSetMap=ngfSetMap;
     727    r->cf->nName= ndName;
     728    r->cf->nSize  = ndSize;
     729#ifdef LDEBUG
     730    r->cf->nDBTest=ngfDBTest;
     731#endif
     732  }
     733  /* -------------- long C -----------------------*/
     734  else if (rField_is_long_C(r))
     735  {
     736    //setGMPFloatDigits(r->ch_flags);
     737#ifdef LDEBUG
     738    r->cf->nDBDelete= ngcDBDelete;
     739#else
     740    r->cf->nDelete= ngcDelete;
     741#endif
     742    r->cf->nNew=ngcNew;
     743    r->cf->nNormalize=nDummy2;
     744    r->cf->nInit  = ngcInit;
     745    r->cf->nInt   = ngcInt;
     746    r->cf->nAdd   = ngcAdd;
     747    r->cf->nSub   = ngcSub;
     748    r->cf->nMult  = ngcMult;
     749    r->cf->nDiv   = ngcDiv;
     750    r->cf->nExactDiv= ngcDiv;
     751    r->cf->nIntDiv= ngcDiv;
     752    r->cf->nIntMod= ndIntMod; /* dummy !! */
     753    r->cf->nNeg   = ngcNeg;
     754    r->cf->nInvers= ngcInvers;
     755    r->cf->nCopy  = ngcCopy;
     756    r->cf->nGreater = ngcGreater;
     757    r->cf->nEqual = ngcEqual;
     758    r->cf->nIsZero = ngcIsZero;
     759    r->cf->nIsOne = ngcIsOne;
     760    r->cf->nIsMOne = ngcIsMOne;
     761    r->cf->nGreaterZero = ngcGreaterZero;
     762    r->cf->nWrite = ngcWrite;
     763    r->cf->nRead = ngcRead;
     764    r->cf->nPower = ngcPower;
     765    r->cf->nGcd  = ndGcd;
     766    r->cf->nLcm  = ndGcd; /* tricky, isn't it ?*/
     767    r->cf->nSetMap=ngcSetMap;
     768    r->cf->nPar=ngcPar;
     769    /*nSize  = ndSize;*/
     770#ifdef LDEBUG
     771    r->cf->nDBTest=ngcDBTest;
     772#endif
     773  }
     774#ifdef TEST
     775  else
     776  {
     777    WerrorS("unknown field");
     778  }
     779#endif
     780  if (!errorreported) r->cf->nNULL=r->cf->nInit(0);
     781}
     782
     783void nKillChar(ring r)
     784{
     785  if ((r!=NULL) && (r->cf!=NULL))
     786  {
     787    r->cf->ref--;
     788    if (r->cf->ref<=0)
     789    {
     790      n_Procs_s tmp;
     791      n_Procs_s* n=&tmp;
     792      tmp.next=cf_root;
     793      while((n->next!=NULL) && (n->next!=r->cf)) n=n->next;
     794      if (n->next==r->cf)
     795      {
     796        n->next=n->next->next;
     797        cf_root=tmp.next;
     798        r->cf->nDelete(&(r->cf->nNULL));
     799        switch(r->cf->type)
     800        {
     801          case n_Zp:
     802               omFreeSize( (ADDRESS)r->cf->npExpTable,
     803                           r->cf->npPrimeM*sizeof(CARDINAL) );
     804               omFreeSize( (ADDRESS)r->cf->npLogTable,
     805                           r->cf->npPrimeM*sizeof(CARDINAL) );
     806               break;
     807
     808          default:
     809               break;
     810        }
     811        omFreeSize((ADDRESS)r->cf, sizeof(n_Procs_s));
     812        r->cf=NULL;
     813      }
     814      else
     815      {
     816        WarnS("cf_root list destroyed");
     817      }
     818    }
     819  }
     820}
  • Singular/numbers.h

    r133c5d rc880d63  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: numbers.h,v 1.16 2000-09-25 12:26:35 obachman Exp $ */
     6/* $Id: numbers.h,v 1.17 2000-11-16 16:51:05 Singular Exp $ */
    77/*
    88* ABSTRACT: interface to coefficient aritmetics
     
    1010#include "structs.h"
    1111
    12 /* typedefs */
    13 /*typedef void (*numberproc)(number a,number b,number * c);*/
    14 /*typedef number (*numberfunc)(number a,number b);*/
    15 
    1612#define n_Copy(n, r)          nCopy(n)
     13//#define n_Delete(n, r)        (r)->cf->nDelete(n)
    1714#define n_Delete(n, r)        nDelete(n)
    1815#define n_Mult(n1, n2, r)     nMult(n1, n2)
     
    2623#define n_IsOne(n, r)         nIsOne(n)
    2724
    28 
    2925/* variables */
    3026extern short fftable[];
    31 /*extern int characteristic;*/
    3227
    3328/* prototypes */
     
    8075#endif
    8176int  nGetChar();
     77void nInitChar(ring r);
     78void nKillChar(ring r);
    8279void nSetChar(ring r, BOOLEAN complete);
    8380
  • Singular/ring.cc

    r133c5d rc880d63  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: ring.cc,v 1.140 2000-11-14 16:05:01 obachman Exp $ */
     4/* $Id: ring.cc,v 1.141 2000-11-16 16:49:21 Singular Exp $ */
    55
    66/*
     
    105105    /*------------ global variables related to polys -------------------*/
    106106    pSetGlobals(r, complete);
    107 
    108107
    109108    if (complete)
     
    496495   *         p   -p : Fp(a)           *names         FALSE
    497496   *         q    q : GF(q=p^n)       *names         TRUE
    498    */
     497  */
    499498  if (ch!=-1)
    500499  {
     
    590589
    591590  // Complete the initialization
    592   if (rComplete(R))
     591  if (rComplete(R,1))
    593592    goto rInitError;
    594593
     
    849848      r->qideal = NULL;
    850849    }
     850    nKillChar(r);
    851851    int i=1;
    852852    int j;
     
    17831783    }
    17841784  }
    1785    
    17861785
    17871786  i=0;
     
    20132012  }
    20142013
     2014
    20152015  if (r->N == 0) return TRUE;
    20162016
     
    20902090    }
    20912091  }
     2092  //assume(r->cf!=NULL);
     2093
    20922094  return TRUE;
    20932095}
     
    23812383  loop
    23822384  {
    2383     if (bits == BIT_SIZEOF_LONG) 
     2385    if (bits == BIT_SIZEOF_LONG)
    23842386    {
    23852387      bits =  BIT_SIZEOF_LONG - 1;
     
    23882390    unsigned long bitmask1 =rGetExpSize(bitmask+1, bits1);
    23892391    int vars_per_long1=BIT_SIZEOF_LONG/bits1;
    2390     if ((((N+vars_per_long-1)/vars_per_long) == 
     2392    if ((((N+vars_per_long-1)/vars_per_long) ==
    23912393         ((N+vars_per_long1-1)/vars_per_long1)))
    23922394    {
     
    24402442        case ringorder_Wp:
    24412443        case ringorder_Dp:
    2442           r_ord=ringorder_lp;
     2444          r_ord=ringorder_lp;
    24432445          break;
    24442446        case ringorder_Ws:
     
    24462448        case ringorder_ws:
    24472449        case ringorder_ds:
    2448           r_ord=ringorder_ls;
     2450          r_ord=ringorder_ls;
    24492451          break;
    24502452        default:
     
    25342536  if (pFDeg != r->pFDeg)
    25352537    res->pFDeg = pFDeg;
    2536   else if (r->pFDeg != res->pFDeg && 
     2538  else if (r->pFDeg != res->pFDeg &&
    25372539           rOrd_is_WeightedDegree_Ordering(r))
    25382540    // still might need adjustment
     
    25492551    if (r->typ[0].data.syz.limit > 0)
    25502552    {
    2551       res->typ[0].data.syz.syz_index 
     2553      res->typ[0].data.syz.syz_index
    25522554        = (int*) omAlloc((r->typ[0].data.syz.limit +1)*sizeof(int));
    25532555      memcpy(res->typ[0].data.syz.syz_index, r->typ[0].data.syz.syz_index,
     
    27972799{
    27982800  if (r->VarOffset!=NULL && force == 0) return FALSE;
     2801  nInitChar(r);
    27992802  rSetOutParams(r);
    28002803  rSetDegStuff(r);
     
    31013104  // right-adjust VarOffset
    31023105  rRightAdjustVarOffset(r);
    3103  
     3106
    31043107  // ----------------------------
    31053108  // set NegWeightL*
     
    31073110
    31083111  // ----------------------------
    3109   // p_Procs: call AFTER NegWeightL 
     3112  // p_Procs: call AFTER NegWeightL
    31103113  r->p_Procs = (p_Procs_s*)omAlloc(sizeof(p_Procs_s));
    31113114  p_SetProcs(r, r->p_Procs);
     
    31533156  int  min = INT_MAX, min_j = -1;
    31543157  int* VarL_Number = (int*) omAlloc0(r->ExpL_Size*sizeof(int));
    3155  
     3158
    31563159  int i,j;
    31573160
     
    31653168  for (i=0, j=0; i<r->ExpL_Size; i++)
    31663169  {
    3167     if (VarL_Number[i] != 0) 
     3170    if (VarL_Number[i] != 0)
    31683171    {
    31693172      if (min > VarL_Number[i])
     
    31793182  r->VarL_Offset = (int*) omAlloc(r->VarL_Size*sizeof(int));
    31803183  r->VarL_LowIndex = 0;
    3181  
     3184
    31823185  // set VarL_Offset
    31833186  for (i=0, j=0; i<r->ExpL_Size; i++)
     
    32113214  for (i=0;i<r->ExpL_Size;i++)
    32123215    shifts[i] = BIT_SIZEOF_LONG;
    3213  
     3216
    32143217  // find minimal bit in each long var
    32153218  for (i=1;i<=r->N;i++)
     
    32223225  {
    32233226    if (shifts[r->VarOffset[i] & 0xffffff] != 0)
    3224       r->VarOffset[i] 
    3225         = (r->VarOffset[i] & 0xffffff) | 
     3227      r->VarOffset[i]
     3228        = (r->VarOffset[i] & 0xffffff) |
    32263229        (((r->VarOffset[i] >> 24) - shifts[r->VarOffset[i] & 0xffffff]) << 24);
    32273230  }
     
    32543257               "ro_syzcomp", "ro_syz", "ro_none"};
    32553258  int i,j;
    3256  
     3259
    32573260  Print("ExpL_Size:%d ",r->ExpL_Size);
    32583261  Print("CmpL_Size:%d ",r->CmpL_Size);
     
    36853688  return (r->order[lb] == ringorder_c || r->order[lb] == ringorder_C);
    36863689}
     3690
     3691n_coeffType rFieldType(ring r)
     3692{
     3693  if (rField_is_Zp(r))     return n_Zp;
     3694  if (rField_is_Q(r))      return n_Q;
     3695  if (rField_is_R(r))      return n_R;
     3696  if (rField_is_GF(r))     return n_GF;
     3697  if (rField_is_long_R(r)) return n_long_R;
     3698  if (rField_is_Zp_a(r))   return n_Zp_a;
     3699  if (rField_is_Q_a(r))    return n_Q_a;
     3700  if (rField_is_long_C(r)) return n_long_C;
     3701  return n_unknown;
     3702}
  • Singular/ring.h

    r133c5d rc880d63  
    77* ABSTRACT - the interpreter related ring operations
    88*/
    9 /* $Id: ring.h,v 1.55 2000-11-14 16:05:02 obachman Exp $ */
     9/* $Id: ring.h,v 1.56 2000-11-16 16:49:20 Singular Exp $ */
    1010
    1111/* includes */
     
    129129inline BOOLEAN rField_is_Extension(ring r=currRing)
    130130{ return (rField_is_Q_a(r)) || (rField_is_Zp_a(r)); } /* Z/p(a) and Q(a)*/
     131
     132n_coeffType rFieldType(ring r);
    131133
    132134// this needs to be called whenever a new ring is created: new fields
  • Singular/structs.h

    r133c5d rc880d63  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: structs.h,v 1.44 2000-11-13 14:50:25 levandov Exp $ */
     6/* $Id: structs.h,v 1.45 2000-11-16 16:50:16 Singular Exp $ */
    77/*
    88* ABSTRACT
     
    4343};
    4444
     45enum n_coeffType
     46{
     47  n_unknown=0,
     48  n_Zp,
     49  n_Q,
     50  n_R,
     51  n_GF,
     52  n_long_R,
     53  n_Zp_a,
     54  n_Q_a,
     55  n_long_C
     56};
     57
    4558#ifdef HAVE_PLURAL
    4659enum nc_type
     
    5164};
    5265#endif
     66
     67
    5368/* C++-part */
    5469#ifdef __cplusplus
     
    6681#endif
    6782
    68 struct  sip_sring;
    69 struct  sip_sideal;
    70 struct  sip_link;
    71 struct  spolynom;
     83struct n_Procs_s;
     84struct sip_sring;
     85struct sip_sideal;
     86struct sip_link;
     87struct spolynom;
    7288struct _ssubexpr;
    7389struct _sssym;
     
    7793struct s_si_link_extension;
    7894struct reca;
     95
     96typedef struct  n_Procs_s  n_Procs_s;
     97
    7998#ifdef HAVE_PLURAL
    8099struct nc_struct;
    81100typedef struct nc_struct   nc_struct;
    82101#endif
     102
    83103typedef struct _ssubexpr   sSubexpr;
    84104typedef struct _sssym      ssym;
     
    93113
    94114/* the pointer types */
    95 typedef char *              char_ptr;
    96 typedef int  *              int_ptr;
    97 typedef short *             short_ptr;
    98 typedef void *              void_ptr;
     115typedef char *             char_ptr;
     116typedef int  *             int_ptr;
     117typedef short *            short_ptr;
     118typedef void *             void_ptr;
    99119typedef ip_sring *         ring;
    100120typedef int                idtyp;
     
    165185typedef struct _scmdnames cmdnames;
    166186
     187typedef number (*numberfunc)(number a,number b);
     188struct n_Procs_s
     189{
     190   n_Procs_s* next;
     191   int     nChar;
     192   n_coeffType type;
     193   int     char_flag;
     194   int     ref;
     195   // the union stuff
     196   // Zp:
     197   int npPrimeM;
     198   int npPminus1M;
     199   CARDINAL *npExpTable;
     200   CARDINAL *npLogTable;
     201   // Zp_a, Q_a
     202
     203   // general stuff
     204   numberfunc nMult, nSub ,nAdd ,nDiv, nIntDiv, nIntMod, nExactDiv;
     205   void    (*nNew)(number * a);
     206   number  (*nInit)(int i);
     207   number  (*nPar)(int i);
     208   int     (*nParDeg)(number n);
     209   int     (*nSize)(number n);
     210   int     (*nInt)(number &n);
     211   number  (*nNeg)(number a);
     212   number  (*nInvers)(number a);
     213   number  (*nCopy)(number a);
     214   void    (*nWrite)(number &a);
     215   char *  (*nRead)(char * s, number * a);
     216   void    (*nNormalize)(number &a);
     217   BOOLEAN (*nGreater)(number a,number b),
     218           (*nEqual)(number a,number b),
     219           (*nIsZero)(number a),
     220           (*nIsOne)(number a),
     221           (*nIsMOne)(number a),
     222           (*nGreaterZero)(number a);
     223   void    (*nPower)(number a, int i, number * result);
     224   number  (*nGetDenom)(number &n);
     225   numberfunc nGcd, nLcm;
     226   BOOLEAN (*nSetMap)(ring r);
     227#ifdef LDEBUG
     228   BOOLEAN (*nDBTest)(number a, char *f, int l);
     229   void    (*nDBDelete)(number * a,char *f, int l);
     230#else
     231   void    (*nDelete)(number * a);
     232#endif
     233   char *  (*nName)(number n);
     234//extern number  (*nMap)(number from);
     235
     236   number nNULL; /* the 0 as constant */
     237};
     238
    167239/* the function pointer types */
    168 typedef number (*numberfunc)(number a,number b);
    169240
    170241extern ring      currRing;
     
    357428  pLDegProc     pLDeg;
    358429  p_SetmProc    p_Setm;
     430  n_Procs_s*    cf;
     431  ring          algring;
    359432#ifdef HAVE_PLURAL
    360433  nc_struct     *nc;
Note: See TracChangeset for help on using the changeset viewer.