Changeset bac8611 in git


Ignore:
Timestamp:
Feb 1, 2008, 4:11:34 PM (15 years ago)
Author:
Oliver Wienand <wienand@…>
Branches:
(u'spielwiese', '91fdef05f09f54b8d58d92a472e9c4a43aa4656f')
Children:
befecbc5f2fd0929fe1c00f9ed52cc5c128a3612
Parents:
3901ebf059dc5ef7abe8c2726771e6d8edee6d96
Message:
ring.h:
no simple alloc for modn

kutil.cc:
delete generated coeffs in pair creation

number.cc:
copy, delete, size for rmodulon and rintegers

kspoly.cc:
pSetCoeff durch pSetCoeff0 ersetzt

rint*, rmod*: delete, etc.


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

Legend:

Unmodified
Added
Removed
  • kernel/kspoly.cc

    r3901ebf rbac8611  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: kspoly.cc,v 1.11 2007-05-11 10:48:03 wienand Exp $ */
     4/* $Id: kspoly.cc,v 1.12 2008-02-01 15:11:33 wienand Exp $ */
    55/*
    66*  ABSTRACT -  Routines for Spoly creation and reductions
     
    399399#ifdef HAVE_RINGS
    400400      if (rField_is_Ring(currRing))
    401           pSetCoeff(m2, t1);
     401          pSetCoeff0(m2, t1);
    402402      else
    403403#endif
     
    435435#ifdef HAVE_RINGS
    436436      if (rField_is_Ring(currRing))
    437         pSetCoeff(m1, t2);
     437        pSetCoeff0(m1, t2);
    438438    else
    439439#endif
     
    487487#ifdef HAVE_RINGS
    488488        if (rField_is_Ring(currRing))
    489           pSetCoeff(m1, t2);
     489          pSetCoeff0(m1, t2);
    490490        else
    491491#endif
     
    498498#ifdef HAVE_RINGS
    499499        if (rField_is_Ring(currRing))
    500             pSetCoeff(m2, t1);
     500            pSetCoeff0(m2, t1);
    501501        else
    502502#endif
     
    526526#ifdef HAVE_RINGS
    527527      if (rField_is_Ring(currRing))
    528           pSetCoeff(m1, t1);
     528          pSetCoeff0(m1, t1);
    529529      else
    530530#endif
  • kernel/kutil.cc

    r3901ebf rbac8611  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: kutil.cc,v 1.76 2008-01-31 16:13:54 wienand Exp $ */
     4/* $Id: kutil.cc,v 1.77 2008-02-01 15:11:33 wienand Exp $ */
    55/*
    66* ABSTRACT: kernel: utils for kStd
     
    917917{
    918918  if (set[j].lcm!=NULL)
    919     pLmFree(set[j].lcm);
     919#ifdef HAVE_RINGS_OLD
     920    if (pGetCoeff(set[j].lcm) != NULL)
     921      pLmDelete(set[j].lcm);
     922    else
     923#endif
     924      pLmFree(set[j].lcm);
    920925  if (set[j].p!=NULL)
    921926  {
    922927    if (pNext(set[j].p) == strat->tail)
    923928    {
    924       pLmFree(set[j].p);
     929#ifdef HAVE_RINGS_OLD
     930      if (pGetCoeff(set[j].p) != NULL)
     931        pLmDelete(set[j].p);
     932      else
     933#endif
     934        pLmFree(set[j].p);
    925935      /*- tail belongs to several int spolys -*/
    926936    }
     
    10371047  /*- computes the lcm(s[i],p) -*/
    10381048  Lp.lcm = pInit();
    1039   pSetCoeff(Lp.lcm, nLcm(pGetCoeff(p), pGetCoeff(strat->S[i]), currRing));
     1049  pSetCoeff0(Lp.lcm, nLcm(pGetCoeff(p), pGetCoeff(strat->S[i]), currRing));
    10401050  // Lp.lcm == 0
    1041   if (pGetCoeff(Lp.lcm) == NULL)
     1051  if (nIsZero(pGetCoeff(Lp.lcm)))
    10421052  {
    10431053#ifdef KDEBUG
     
    10531063#endif
    10541064      strat->cp++;
    1055       pLmFree(Lp.lcm);
     1065      pLmDelete(Lp.lcm);
    10561066      Lp.lcm=NULL;
    10571067      return;
     
    10751085#endif
    10761086      strat->cp++;
    1077       pLmFree(Lp.lcm);
     1087      pLmDelete(Lp.lcm);
    10781088      Lp.lcm=NULL;
    10791089      return;
     
    11081118        if ((strat->fromQ==NULL) || (isFromQ==0) || (strat->fromQ[i]==0))
    11091119        {
    1110           pLmFree(Lp.lcm);
     1120          pLmDelete(Lp.lcm);
    11111121          return;
    11121122        }
     
    11491159        if ((strat->fromQ==NULL) || (isFromQ==0) || (strat->fromQ[i]==0))
    11501160        {
    1151           pLmFree(Lp.lcm);
     1161          pLmDelete(Lp.lcm);
    11521162          return;
    11531163        }
     
    12201230    *the first case is handeled in chainCrit
    12211231    */
    1222     if (Lp.lcm!=NULL) pLmFree(Lp.lcm);
     1232    if (Lp.lcm!=NULL) pLmDelete(Lp.lcm);
    12231233  }
    12241234  else
     
    21872197      {
    21882198        strat->c3++;
    2189         pLmFree(Lp.lcm);
     2199        pLmDelete(Lp.lcm);
    21902200        return;
    21912201      }
     
    22032213      {
    22042214        strat->c3++;
    2205         pLmFree(Lp.lcm);
     2215        pLmDelete(Lp.lcm);
    22062216        return;
    22072217      }
     
    22392249    *the first case is handeled in chainCrit
    22402250    */
    2241     if (Lp.lcm!=NULL) pLmFree(Lp.lcm);
     2251    if (Lp.lcm!=NULL) pLmDelete(Lp.lcm);
    22422252  }
    22432253  else
     
    26582668      }
    26592669      p_Setm(tmp, currRing);
    2660       pSetCoeff0(p, NULL);
    2661       p = p_LmDeleteAndNext(p, strat->tailRing);
     2670      p = p_LmFreeAndNext(p, strat->tailRing);
    26622671      pNext(tmp) = p;
    2663 
    26642672      LObject h;
    26652673      h.p = tmp;
  • kernel/numbers.cc

    r3901ebf rbac8611  
    22*  Computer Algebra System SINGULAR      *
    33*****************************************/
    4 /* $Id: numbers.cc,v 1.12 2008-01-30 16:14:24 wienand Exp $ */
     4/* $Id: numbers.cc,v 1.13 2008-02-01 15:11:34 wienand Exp $ */
    55
    66/*
     
    382382     nrnInitExp(c,r);
    383383     n->nInit  = nrnInit;
    384      n->nCopy  = ndCopy;
     384     n->cfDelete= nrnDelete;
     385     n->nCopy  = nrnCopy;
     386     n->cfCopy = cfrnCopy;
     387     n->nSize  = nrnSize;
    385388     n->nInt   = nrnInt;
    386389     n->nAdd   = nrnAdd;
     
    388391     n->nMult  = nrnMult;
    389392     n->nDiv   = nrnDiv;
    390      n->nIntDiv       = nrnIntDiv;
     393     n->nIntDiv= nrnIntDiv;
    391394     n->nExactDiv= nrnDiv;
    392395     n->nNeg   = nrnNeg;
     
    421424  {
    422425     n->nInit  = nrzInit;
    423      n->nCopy  = ndCopy;
     426     n->cfDelete= nrzDelete;
     427     n->nCopy  = nrzCopy;
     428     n->cfCopy = cfrzCopy;
     429     n->nSize  = nrzSize;
    424430     n->nInt   = nrzInt;
    425431     n->nAdd   = nrzAdd;
  • kernel/ring.h

    r3901ebf rbac8611  
    77* ABSTRACT - the interpreter related ring operations
    88*/
    9 /* $Id: ring.h,v 1.25 2008-02-01 13:46:08 Singular Exp $ */
     9/* $Id: ring.h,v 1.26 2008-02-01 15:11:34 wienand Exp $ */
    1010
    1111/* includes */
     
    230230#ifdef HAVE_RING2TOM
    231231       || rField_is_Ring_2toM(r)
    232 #endif
    233 #ifdef HAVE_RINGMODN
    234        || rField_is_Ring_ModN(r)
    235232#endif
    236233       || rField_is_R(r)); }
  • kernel/rintegers.cc

    r3901ebf rbac8611  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: rintegers.cc,v 1.6 2008-01-30 18:49:43 wienand Exp $ */
     4/* $Id: rintegers.cc,v 1.7 2008-02-01 15:11:34 wienand Exp $ */
    55/*
    66* ABSTRACT: numbers modulo n
     
    2323
    2424typedef MP_INT *int_number;
     25omBin gmp_nrz_bin = omGetSpecBin(sizeof(MP_INT));
     26number nrzOne = nrzInit(1);
    2527
    2628/*
     
    2931number nrzMult (number a, number b)
    3032{
    31   int_number erg = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
     33  int_number erg = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
    3234  mpz_init(erg);
    3335  mpz_mul(erg, (int_number) a, (int_number) b);
     
    4042number nrzLcm (number a,number b,ring r)
    4143{
    42   int_number erg = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
     44  int_number erg = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
    4345  mpz_init(erg);
    4446  mpz_lcm(erg, (int_number) a, (int_number) b);
     
    5254number nrzGcd (number a,number b,ring r)
    5355{
    54   int_number erg = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
     56  int_number erg = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
    5557  mpz_init(erg);
    5658  mpz_gcd(erg, (int_number) a, (int_number) b);
     
    6466number  nrzExtGcd (number a, number b, number *s, number *t)
    6567{
    66   int_number erg = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
    67   int_number bs = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
    68   int_number bt = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
     68  int_number erg = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
     69  int_number bs = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
     70  int_number bt = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
    6971  mpz_init(erg);
    7072  mpz_init(bs);
     
    7880void nrzPower (number a, int i, number * result)
    7981{
    80   int_number erg = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
     82  int_number erg = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
    8183  mpz_init(erg);
    8284  mpz_pow_ui(erg, (int_number) a, i);
     
    8991number nrzInit (int i)
    9092{
    91   int_number erg = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
     93  int_number erg = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
    9294  mpz_init_set_si(erg, i);
    9395  return (number) erg;
     
    9799{
    98100  mpz_clear((int_number) *a);
    99   omFree((ADDRESS) *a);
     101  omFreeBin((ADDRESS) *a, gmp_nrz_bin);
     102}
     103
     104number nrzCopy(number a)
     105{
     106  int_number erg = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
     107  mpz_init_set(erg, (int_number) a);
     108  return (number) erg;
     109}
     110
     111number cfrzCopy(number a, const ring r)
     112{
     113  return nrzCopy(a);
     114}
     115
     116int nrzSize(number a)
     117{
     118  if (a == NULL) return 0;
     119  return sizeof(MP_INT);
    100120}
    101121
     
    110130number nrzAdd (number a, number b)
    111131{
    112   int_number erg = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
     132  int_number erg = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
    113133  mpz_init(erg);
    114134  mpz_add(erg, (int_number) a, (int_number) b);
     
    118138number nrzSub (number a, number b)
    119139{
    120   int_number erg = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
     140  int_number erg = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
    121141  mpz_init(erg);
    122142  mpz_sub(erg, (int_number) a, (int_number) b);
     
    126146number  nrzGetUnit (number a)
    127147{
    128   int_number erg = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
    129   mpz_init_set_si(erg, 1);
    130   return (number) erg;
     148  return nrzOne;
    131149}
    132150
     
    181199number nrzDiv (number a,number b)
    182200{
    183   int_number erg = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
    184   int_number r = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
     201  int_number erg = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
     202  int_number r = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
    185203  mpz_init(erg);
    186204  mpz_tdiv_qr(erg, r, (int_number) a, (int_number) b);
     
    191209  }
    192210  mpz_clear(r);
    193   omFree(r);
     211  omFreeBin(r, gmp_nrz_bin);
    194212  return (number) erg;
    195213}
     
    197215number nrzIntDiv (number a,number b)
    198216{
    199   int_number erg = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
     217  int_number erg = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
    200218  mpz_init(erg);
    201219  mpz_tdiv_q(erg, (int_number) a, (int_number) b);
     
    210228    return (number)0; //TODO
    211229  }
    212   int_number erg = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
    213   mpz_init(erg);
    214   mpz_set(erg, (int_number) c);
    215   return (number) erg;
     230  return c;
    216231}
    217232
    218233number nrzNeg (number c)
    219234{
    220   int_number erg = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
     235  int_number erg = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
    221236  mpz_init(erg);
    222237  mpz_mul_si(erg, (int_number) c, -1);
     
    298313char * nrzRead (char *s, number *a)
    299314{
    300   int_number z = (int_number) omAlloc(sizeof(MP_INT)); // evtl. spaeter mit bin
     315  int_number z = (int_number) omAllocBin(gmp_nrz_bin); // evtl. spaeter mit bin
    301316  {
    302317    mpz_init(z);
  • kernel/rintegers.h

    r3901ebf rbac8611  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: rintegers.h,v 1.2 2007-06-20 09:39:25 wienand Exp $ */
     6/* $Id: rintegers.h,v 1.3 2008-02-01 15:11:34 wienand Exp $ */
    77/*
    88* ABSTRACT: numbers modulo n
     
    1414extern NATNUMBER nrzModul;
    1515
     16number  nrzCopy        (number a);
     17number  cfrzCopy       (number a, const ring r);
     18int     nrzSize        (number a);
     19void    nrzDelete      (number *a, const ring r);
    1620BOOLEAN nrzGreaterZero (number k);
    1721number  nrzMult        (number a, number b);
  • kernel/rmodulon.cc

    r3901ebf rbac8611  
    22*  Computer Algebra System SINGULAR     *
    33****************************************/
    4 /* $Id: rmodulon.cc,v 1.14 2008-02-01 10:31:44 wienand Exp $ */
     4/* $Id: rmodulon.cc,v 1.15 2008-02-01 15:11:34 wienand Exp $ */
    55/*
    66* ABSTRACT: numbers modulo n
     
    2323
    2424typedef MP_INT *int_number;
    25 omBin gmp_bin = omGetSpecBin(sizeof(MP_INT));
     25omBin gmp_nrn_bin = omGetSpecBin(sizeof(MP_INT));
    2626
    2727int_number nrnModul = NULL;
     
    3535number nrnInit (int i)
    3636{
    37   int_number erg = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     37  int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    3838  mpz_init_set_si(erg, i);
    3939  mpz_mod(erg, erg, nrnModul);
     
    4444{
    4545  mpz_clear((int_number) *a);
    46   omFreeBin((ADDRESS) *a, gmp_bin);
     46  omFreeBin((ADDRESS) *a, gmp_nrn_bin);
     47  *a = NULL;
     48}
     49
     50number nrnCopy(number a)
     51{
     52  int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
     53  mpz_init_set(erg, (int_number) a);
     54  return (number) erg;
     55}
     56
     57number cfrnCopy(number a, const ring r)
     58{
     59  return nrnCopy(a);
     60}
     61
     62int nrnSize(number a)
     63{
     64  if (a == NULL) return 0;
     65  return sizeof(MP_INT);
    4766}
    4867
     
    6079number nrnMult (number a, number b)
    6180{
    62   int_number erg = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     81  int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    6382  mpz_init(erg);
    6483  mpz_mul(erg, (int_number) a, (int_number) b);
     
    6988void nrnPower (number a, int i, number * result)
    7089{
    71   int_number erg = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     90  int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    7291  mpz_init(erg);
    7392  mpz_powm_ui(erg, (int_number) a, i, nrnModul);
     
    7796number nrnAdd (number a, number b)
    7897{
    79   int_number erg = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     98  int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    8099  mpz_init(erg);
    81100  mpz_add(erg, (int_number) a, (int_number) b);
     
    86105number nrnSub (number a, number b)
    87106{
    88   int_number erg = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     107  int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    89108  mpz_init(erg);
    90109  mpz_sub(erg, (int_number) a, (int_number) b);
     
    95114number nrnNeg (number c)
    96115{
    97   int_number erg = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     116  int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    98117  mpz_init(erg);
    99118  mpz_sub(erg, nrnModul, (int_number) c);
     
    103122number  nrnInvers (number c)
    104123{
    105   int_number erg = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     124  int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    106125  mpz_init(erg);
    107126  mpz_invert(erg, (int_number) c, nrnModul);
     
    129148{
    130149  if ((a == NULL) && (b == NULL)) return nrnInit(0);
    131   int_number erg = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     150  int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    132151  mpz_init_set(erg, nrnModul);
    133152  if (a != NULL) mpz_gcd(erg, erg, (int_number) a);
     
    139158number nrnGcd3 (number a,number b, number c,ring r)
    140159{
    141   int_number erg = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     160  int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    142161  mpz_init(erg);
    143162  if (a == NULL) a = (number) nrnModul;
     
    157176number  nrnExtGcd (number a, number b, number *s, number *t)
    158177{
    159   int_number erg = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
    160   int_number bs = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
    161   int_number bt = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     178  int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
     179  int_number bs = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
     180  int_number bt = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    162181  mpz_init(erg);
    163182  mpz_init(bs);
     
    264283{
    265284  if (a == NULL) a = (number) nrnModul;
    266   int_number erg = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     285  int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    267286  mpz_init(erg);
    268287  if (mpz_divisible_p((int_number) a, (int_number) b))
     
    296315number nrnIntDiv (number a,number b)
    297316{
    298   int_number erg = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     317  int_number erg = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    299318  mpz_init(erg);
    300319  if (a == NULL) a = (number) nrnModul;
     
    330349    nrnDelete((number*) &nrnMinusOne, NULL);
    331350  }
    332   nrnModul = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     351  nrnModul = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    333352  mpz_init(nrnModul);
    334353  mpz_set_ull(nrnModul, nrnBase);
    335354  mpz_pow_ui(nrnModul, nrnModul, nrnExponent);
    336355
    337   nrnMinusOne = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     356  nrnMinusOne = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    338357  mpz_init(nrnMinusOne);
    339358  mpz_sub_ui(nrnMinusOne, nrnModul, 1);
     
    408427char * nrnRead (char *s, number *a)
    409428{
    410   int_number z = (int_number) omAllocBin(gmp_bin); // evtl. spaeter mit bin
     429  int_number z = (int_number) omAllocBin(gmp_nrn_bin); // evtl. spaeter mit bin
    411430  {
    412431    s = nlCPEatLongC(s, z);
  • kernel/rmodulon.h

    r3901ebf rbac8611  
    44*  Computer Algebra System SINGULAR     *
    55****************************************/
    6 /* $Id: rmodulon.h,v 1.5 2008-01-30 13:03:41 wienand Exp $ */
     6/* $Id: rmodulon.h,v 1.6 2008-02-01 15:11:34 wienand Exp $ */
    77/*
    88* ABSTRACT: numbers modulo n
     
    1515#endif
    1616
     17number  nrnCopy        (number a);
     18number  cfrnCopy       (number a, const ring r);
     19int     nrnSize        (number a);
     20void    nrnDelete      (number *a, const ring r);
    1721BOOLEAN nrnGreaterZero (number k);
    1822number  nrnMult        (number a, number b);
Note: See TracChangeset for help on using the changeset viewer.