Changeset 06abb07 in git for libpolys/polys


Ignore:
Timestamp:
Sep 19, 2016, 2:23:44 PM (8 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', '38dfc5131670d387a89455159ed1e071997eec94')
Children:
59dca7d44c6d942796166db1c0ac9621d2a5ee39
Parents:
c4ead28a352d5f3846b80a454f239a0ef2b5af5a
Message:
chg: n_...(...,ring) -> n_....(...,coeff) for better debugging
Location:
libpolys/polys
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • libpolys/polys/monomials/p_polys.cc

    rc4ead28 r06abb07  
    124124      }
    125125      else
    126         x[j]=n_Init(0, R);
     126        x[j]=n_Init(0, R->cf);
    127127    }
    128128    number n=n_ChineseRemainderSym(x,q,rl,TRUE,inv_cache,R->cf);
     
    131131      x[j]=NULL; // n_Init(0...) takes no memory
    132132    }
    133     if (n_IsZero(n,R)) p_Delete(&h,R);
     133    if (n_IsZero(n,R->cf)) p_Delete(&h,R);
    134134    else
    135135    {
     
    25412541  }
    25422542  else
    2543     s=n_Size(d,r);
     2543    s=n_Size(d,r->cf);
    25442544  number d2=d;
    25452545  loop
     
    25712571    else
    25722572    {
    2573       int ns=n_Size(pGetCoeff(ph),r);
     2573      int ns=n_Size(pGetCoeff(ph),r->cf);
    25742574      if (ns<=3)
    25752575      {
     
    43994399  if (rField_is_Ring(r))
    44004400  {
    4401     if (!n_DivBy(p_GetCoeff(p1, r), p_GetCoeff(p2, r), r)) return FALSE;
     4401    if (!n_DivBy(pGetCoeff(p1), pGetCoeff(p2), r->cf)) return FALSE;
    44024402  }
    44034403  #endif
    4404   n=n_Div(p_GetCoeff(p1,r),p_GetCoeff(p2,r),r);
     4404  n=n_Div(pGetCoeff(p1),pGetCoeff(p2),r->cf);
    44054405  while ((p1 != NULL) /*&& (p2 != NULL)*/)
    44064406  {
    44074407    if ( ! p_LmEqual(p1, p2,r))
    44084408    {
    4409         n_Delete(&n, r);
     4409        n_Delete(&n, r->cf);
    44104410        return FALSE;
    44114411    }
    4412     if (!n_Equal(p_GetCoeff(p1, r), nn = n_Mult(p_GetCoeff(p2, r),n, r->cf), r->cf))
    4413     {
    4414       n_Delete(&n, r);
    4415       n_Delete(&nn, r);
     4412    if (!n_Equal(pGetCoeff(p1), nn = n_Mult(pGetCoeff(p2),n, r->cf), r->cf))
     4413    {
     4414      n_Delete(&n, r->cf);
     4415      n_Delete(&nn, r->cf);
    44164416      return FALSE;
    44174417    }
    4418     n_Delete(&nn, r);
     4418    n_Delete(&nn, r->cf);
    44194419    pIter(p1);
    44204420    pIter(p2);
    44214421  }
    4422   n_Delete(&n, r);
     4422  n_Delete(&n, r->cf);
    44234423  return TRUE;
    44244424}
  • libpolys/polys/nc/ncSAFormula.cc

    rc4ead28 r06abb07  
    117117    const number q = p_GetCoeff(GetC(r, i, j), r);
    118118
    119     if( !n_IsOne(q, r) )
     119    if( !n_IsOne(q, r->cf) )
    120120      return FALSE;
    121121  }
     
    146146
    147147  const poly c = GetC(r, i, j);
    148   const number q = p_GetCoeff(c, r);
     148  const number q = pGetCoeff(c);
    149149  const poly d = GetD(r, i, j);
    150150
     
    159159  {
    160160
    161     if( n_IsOne(q, r) ) // commutative
     161    if( n_IsOne(q, r->cf) ) // commutative
    162162      return _ncSA_1xy0x0y0;
    163163
    164     if( n_IsMOne(q, r) ) // anti-commutative
     164    if( n_IsMOne(q, r->cf) ) // anti-commutative
    165165      return _ncSA_Mxy0x0y0;
    166166
     
    168168  } else
    169169  {
    170     if( n_IsOne(q, r) ) // "Lie" case
     170    if( n_IsOne(q, r->cf) ) // "Lie" case
    171171    {
    172172      if( pNext(d) == NULL ) // Our Main Special Case: d is only a term!
     
    194194            if (AreCommutingVariables(r, k, i/*, &qi*/) && AreCommutingVariables(r, k, j/*, &qj*/) ) // [x, t] = [Dx, t] = 0?
    195195            {
    196               const number g = p_GetCoeff(d, r);
    197 
    198               if (n_IsOne(g, r))
     196              const number g = pGetCoeff(d);
     197
     198              if (n_IsOne(g, r->cf))
    199199                return _ncSA_1xy0x0yT2; // save k!?, G = LC(d) == qi == qj == 1!!!
    200200            }
     
    306306    min = n;
    307307    max = m;
    308   } else
     308  }
     309  else
    309310  {
    310311    min = m;
     
    315316
    316317  if( max == 1 )
    317     qN = n_Copy(m_q, r);
     318    qN = n_Copy(m_q, r->cf);
    318319  else
    319320  {
    320321    number t;
    321     n_Power(m_q, max, &t, r);
     322    n_Power(m_q, max, &t, r->cf);
    322323
    323324    if( min > 1 )
    324325    {
    325       n_Power(t, min, &qN, r);
    326       n_Delete(&t, r);
     326      n_Power(t, min, &qN, r->cf);
     327      n_Delete(&t, r->cf);
    327328    }
    328329    else
     
    346347#if OUTPUT
    347348  Print("ncSA_1xy0x0yG(var(%d)^{%d}, var(%d)^{%d}, G, r)!\n", j, m, i, n);
    348   number t = n_Copy(m_g, r);
    349   PrintS("Parameter G: "); n_Write(t, r);
    350   n_Delete(&t, r);
     349  number t = n_Copy(m_g, r->cf);
     350  PrintS("Parameter G: "); n_Write(t, r->cf);
     351  n_Delete(&t, r->cf);
    351352#endif
    352353
     
    354355  int km = m;
    355356
    356   number c = n_Init(1, r);
     357  number c = n_Init(1, r->cf);
    357358
    358359  poly p = p_One( r);
     
    373374  for(; k < min; k++ )
    374375  {
    375     number t = n_Init(km + 1, r);
    376     n_InpMult(t, m_g, r); // t = ((m - k) + 1) * gamma
    377     n_InpMult(c, t, r);   // c = c'* ((m - k) + 1) * gamma
    378     n_Delete(&t, r);
    379 
    380     t = n_Init(kn + 1, r);
    381     n_InpMult(c, t, r);   // c = (c'* ((m - k) + 1) * gamma) * ((n - k) + 1)
    382     n_Delete(&t, r);
    383 
    384     t = n_Init(k, r);
    385     c = n_Div(c, t, r);
    386     n_Delete(&t, r);
    387 
    388 //    n_Normalize(c, r);
    389 
    390     t = n_Copy(c, r); // not the last!
     376    number t = n_Init(km + 1, r->cf);
     377    n_InpMult(t, m_g, r->cf); // t = ((m - k) + 1) * gamma
     378    n_InpMult(c, t, r->cf);   // c = c'* ((m - k) + 1) * gamma
     379    n_Delete(&t, r->cf);
     380
     381    t = n_Init(kn + 1, r->cf);
     382    n_InpMult(c, t, r->cf);   // c = (c'* ((m - k) + 1) * gamma) * ((n - k) + 1)
     383    n_Delete(&t, r->cf);
     384
     385    t = n_Init(k, r->cf);
     386    c = n_Div(c, t, r->cf);
     387    n_Delete(&t, r->cf);
     388
     389//    n_Normalize(c, r->cf);
     390
     391    t = n_Copy(c, r->cf); // not the last!
    391392
    392393    p = p_NSet(t, r);
     
    405406
    406407  {
    407     n_InpMult(c, m_g, r);   // c = c'* gamma
     408    n_InpMult(c, m_g, r->cf);   // c = c'* gamma
    408409
    409410    if( km > 0 )
    410411    {
    411       number t = n_Init(km + 1, r);
    412       n_InpMult(c, t, r);   // c = (c'* gamma) * (m - k + 1)
    413       n_Delete(&t, r);
     412      number t = n_Init(km + 1, r->cf);
     413      n_InpMult(c, t, r->cf);   // c = (c'* gamma) * (m - k + 1)
     414      n_Delete(&t, r->cf);
    414415    }
    415416
    416417    if( kn > 0 )
    417418    {
    418       number t = n_Init(kn + 1, r);
    419       n_InpMult(c, t, r);   // c = (c'* gamma) * (n - k + 1)
    420       n_Delete(&t, r);
     419      number t = n_Init(kn + 1, r->cf);
     420      n_InpMult(c, t, r->cf);   // c = (c'* gamma) * (n - k + 1)
     421      n_Delete(&t, r->cf);
    421422    }
    422423
    423     number t = n_Init(k, r); // c = ((c'* gamma) * ((n - k + 1) * (m - k + 1))) / k;
    424     c = n_Div(c, t, r);
    425     n_Delete(&t, r);
     424    number t = n_Init(k, r->cf); // c = ((c'* gamma) * ((n - k + 1) * (m - k + 1))) / k;
     425    c = n_Div(c, t, r->cf);
     426    n_Delete(&t, r->cf);
    426427  }
    427428
     
    451452
    452453  // k == 0!
    453   number c = n_Init(1, r);
     454  number c = n_Init(1, r->cf);
    454455
    455456  poly p = p_One( r );
     
    471472  for(; k < min; k++ )
    472473  {
    473     number t = n_Init(km + 1, r);
    474 //    n_InpMult(t, m_g, r); // t = ((m - k) + 1) * gamma
    475     n_InpMult(c, t, r);   // c = c'* ((m - k) + 1) * gamma
    476     n_Delete(&t, r);
    477 
    478     t = n_Init(kn + 1, r);
    479     n_InpMult(c, t, r);   // c = (c'* ((m - k) + 1) * gamma) * ((n - k) + 1)
    480     n_Delete(&t, r);
    481 
    482     t = n_Init(k, r);
    483     c = n_Div(c, t, r);
    484     n_Delete(&t, r);
     474    number t = n_Init(km + 1, r->cf);
     475//    n_InpMult(t, m_g, r->cf); // t = ((m - k) + 1) * gamma
     476    n_InpMult(c, t, r->cf);   // c = c'* ((m - k) + 1) * gamma
     477    n_Delete(&t, r->cf);
     478
     479    t = n_Init(kn + 1, r->cf);
     480    n_InpMult(c, t, r->cf);   // c = (c'* ((m - k) + 1) * gamma) * ((n - k) + 1)
     481    n_Delete(&t, r->cf);
     482
     483    t = n_Init(k, r->cf);
     484    c = n_Div(c, t, r->cf);
     485    n_Delete(&t, r->cf);
    485486
    486487// //    n_Normalize(c, r);
    487488
    488     t = n_Copy(c, r); // not the last!
     489    t = n_Copy(c, r->cf); // not the last!
    489490
    490491    p = p_NSet(t, r);
     
    509510    if( km > 0 )
    510511    {
    511       number t = n_Init(km + 1, r);
    512       n_InpMult(c, t, r);   // c = (c'* gamma) * (m - k + 1)
    513       n_Delete(&t, r);
     512      number t = n_Init(km + 1, r->cf);
     513      n_InpMult(c, t, r->cf);   // c = (c'* gamma) * (m - k + 1)
     514      n_Delete(&t, r->cf);
    514515    }
    515516
    516517    if( kn > 0 )
    517518    {
    518       number t = n_Init(kn + 1, r);
    519       n_InpMult(c, t, r);   // c = (c'* gamma) * (n - k + 1)
    520       n_Delete(&t, r);
     519      number t = n_Init(kn + 1, r->cf);
     520      n_InpMult(c, t, r->cf);   // c = (c'* gamma) * (n - k + 1)
     521      n_Delete(&t, r->cf);
    521522    }
    522523
    523     number t = n_Init(k, r); // c = ((c'* gamma) * ((n - k + 1) * (m - k + 1))) / k;
    524     c = n_Div(c, t, r);
    525     n_Delete(&t, r);
     524    number t = n_Init(k, r->cf); // c = ((c'* gamma) * ((n - k + 1) * (m - k + 1))) / k;
     525    c = n_Div(c, t, r->cf);
     526    n_Delete(&t, r->cf);
    526527  }
    527528
     
    552553  int k = m; // to 0
    553554
    554   number c = n_Init(1, r); // k = m, C_k = 1
     555  number c = n_Init(1, r->cf); // k = m, C_k = 1
    555556  poly p = p_One( r);
    556557
     
    564565  poly pLast = p;
    565566
    566   number nn =  n_Init(n, r); // number(n)!
    567   n_InpMult(nn, m_shiftCoef, r); // nn = (alpha*n)
     567  number nn =  n_Init(n, r->cf); // number(n)!
     568  n_InpMult(nn, m_shiftCoef, r->cf); // nn = (alpha*n)
    568569
    569570  --k;
     
    573574  for(; k > 0; k-- )
    574575  {
    575     number t = n_Init(k + 1, r);  // t = k+1
    576     n_InpMult(c, t, r);           // c = c' * (k+1)
    577     n_InpMult(c, nn, r);          // c = (c' * (k+1)) * (alpha * n)
    578 
    579     n_Delete(&t, r);
    580     t = n_Init(mk++, r);
    581     c = n_Div(c, t, r);           // c = ((c' * (k+1))  * (alpha * n)) / (m-k);
    582     n_Delete(&t, r);
    583 
    584 //    n_Normalize(c, r);
    585 
    586     t = n_Copy(c, r); // not the last!
     576    number t = n_Init(k + 1, r->cf);  // t = k+1
     577    n_InpMult(c, t, r->cf);           // c = c' * (k+1)
     578    n_InpMult(c, nn, r->cf);          // c = (c' * (k+1)) * (alpha * n)
     579
     580    n_Delete(&t, r->cf);
     581    t = n_Init(mk++, r->cf);
     582    c = n_Div(c, t, r->cf);           // c = ((c' * (k+1))  * (alpha * n)) / (m-k);
     583    n_Delete(&t, r->cf);
     584
     585//    n_Normalize(c, r->cf);
     586
     587    t = n_Copy(c, r->cf); // not the last!
    587588
    588589    p = p_NSet(t, r);
     
    600601
    601602  {
    602     n_InpMult(c, nn, r);          // c = (c' * (0+1)) * (alpha * n)
    603 
    604     number t = n_Init(m, r);
    605     c = n_Div(c, t, r);           // c = ((c' * (0+1))  * (alpha * n)) / (m-0);
    606     n_Delete(&t, r);
    607   }
    608 
    609   n_Delete(&nn, r);
     603    n_InpMult(c, nn, r->cf);          // c = (c' * (0+1)) * (alpha * n)
     604
     605    number t = n_Init(m, r->cf);
     606    c = n_Div(c, t, r->cf);           // c = ((c' * (0+1))  * (alpha * n)) / (m-0);
     607    n_Delete(&t, r->cf);
     608  }
     609
     610  n_Delete(&nn, r->cf);
    610611
    611612  p = p_NSet(c, r);
  • libpolys/polys/nc/ncSAMult.h

    rc4ead28 r06abb07  
    4545    {
    4646      poly pMonom = p_LmInit(pTerm, r);
    47       pSetCoeff0(pMonom, n_Init(i, r));
     47      pSetCoeff0(pMonom, n_Init(i, r->cf));
    4848      return pMonom;
    4949    }
  • libpolys/polys/nc/old.gring.cc

    rc4ead28 r06abb07  
    6363// #endif
    6464
    65 static poly NF_Proc_Dummy(ideal, ideal, poly, int, int, const ring _currRing)
     65static poly NF_Proc_Dummy(ideal, ideal, poly, int, int, const ring)
    6666{ WerrorS("nc_NF not defined"); return NULL; }
    67 static ideal BBA_Proc_Dummy (const ideal, const ideal, const intvec *, const intvec *, kStrategy strat, const ring)
     67static ideal BBA_Proc_Dummy (const ideal, const ideal, const intvec *, const intvec *, kStrategy, const ring)
    6868{ WerrorS("nc_NF not defined"); return NULL; }
    6969
     
    424424    }
    425425    p_GetExpV(p,P,r);
    426     cP=p_GetCoeff(p,r);
    427     cOut=n_Mult(cP,cM,r);
     426    cP=pGetCoeff(p);
     427    cOut=n_Mult(cP,cM,r->cf);
    428428    if (side==1)
    429429    {
     
    435435    }
    436436    v = p_Mult_nn(v,cOut,r);
    437     n_Delete(&cOut,r);
     437    n_Delete(&cOut,r->cf);
    438438    p_SetCompP(v,expOut,r);
    439439
     
    518518  }
    519519
    520   number cff=n_Init(1,r);
     520  number cff=n_Init(1,r->cf);
    521521  number tmp_num=NULL;
    522522  int cpower=0;
     
    540540        }
    541541      }
    542       cff = n_Copy(p_GetCoeff(MATELEM(r->GetNC()->COM,1,2),r),r);
    543       n_Power(cff,tpower,&tmp_num, r);
    544       n_Delete(&cff,r);
     542      cff = n_Copy(pGetCoeff(MATELEM(r->GetNC()->COM,1,2)),r->cf);
     543      n_Power(cff,tpower,&tmp_num, r->cf);
     544      n_Delete(&cff,r->cf);
    545545      cff = tmp_num;
    546546    }
    547547    else /* skew commutative with nonequal coeffs */
    548548    {
    549       number totcff=n_Init(1,r);
     549      number totcff=n_Init(1,r->cf);
    550550      for(j=jG; j<=iG; j++)
    551551      {
     
    558558            {
    559559              cpower = F[i]*G[j]; // bug! overflow danger!!!
    560               cff = n_Copy(p_GetCoeff(MATELEM(r->GetNC()->COM,j,i),r),r);
    561               n_Power(cff,cpower,&tmp_num, r);
    562               cff = n_Mult(totcff,tmp_num, r);
    563               n_Delete(&totcff, r);
    564               n_Delete(&tmp_num, r);
    565               totcff = n_Copy(cff,r);
    566               n_Delete(&cff,r);
     560              cff = n_Copy(pGetCoeff(MATELEM(r->GetNC()->COM,j,i)),r->cf);
     561              n_Power(cff,cpower,&tmp_num, r->cf);
     562              cff = n_Mult(totcff,tmp_num, r->cf);
     563              n_Delete(&totcff, r->cf);
     564              n_Delete(&tmp_num, r->cf);
     565              totcff = n_Copy(cff,r->cf);
     566              n_Delete(&cff,r->cf);
    567567            }
    568568          } /* end 2nd for */
     
    633633  poly Rout=NULL;
    634634  number *c=(number *)omAlloc0((rN+1)*sizeof(number));
    635   c[0]=n_Init(1,r);
     635  c[0]=n_Init(1,r->cf);
    636636
    637637  int *Op=Nxt;
     
    654654
    655655     w=gnc_mm_Mult_uu(Op,t,On[t],r);
    656      c[cnt]=n_Mult(c[cnt-1],p_GetCoeff(w,r),r);
     656     c[cnt]=n_Mult(c[cnt-1],pGetCoeff(w),r->cf);
    657657     D = pNext(w);  /* getting coef and rest D */
    658658     p_LmDelete(&w,r);
     
    869869  poly Rout=NULL;
    870870  number *c=(number *)omAlloc0((cnt+2)*sizeof(number));
    871   c[cnt+1]=n_Init(1,r);
     871  c[cnt+1]=n_Init(1,r->cf);
    872872  i=cnt+2;         /* later in freeN */
    873873  int *Op=Nxt;
     
    898898
    899899     poly w=gnc_uu_Mult_ww(t,Op[t],jG,bG,r);
    900      c[cnt]=n_Copy(p_GetCoeff(w,r),r);
     900     c[cnt]=n_Copy(pGetCoeff(w),r->cf);
    901901     D = pNext(w);  /* getting coef and rest D */
    902902     p_LmDelete(&w,r);
     
    943943#endif
    944944     p_Delete(&Pp,r);
    945      num=n_Mult(c[cnt+1],c[cnt],r);
    946      n_Delete(&c[cnt],r);
     945     num=n_Mult(c[cnt+1],c[cnt],r->cf);
     946     n_Delete(&c[cnt],r->cf);
    947947     c[cnt]=num;
    948948     Rout=p_Mult_nn(Rout,c[cnt+1],r); /* Rest is ready */
     
    11191119    p_AddExp(out,j,b,r);
    11201120    p_Setm(out,r);
    1121     if (n_IsOne(p_GetCoeff(MATELEM(r->GetNC()->COM,j,i),r),r)) /* commutative case */
     1121    if (n_IsOne(pGetCoeff(MATELEM(r->GetNC()->COM,j,i)),r->cf)) /* commutative case */
    11221122    {
    11231123      return(out);
     
    11251125    else
    11261126    {
    1127       number tmp_number=p_GetCoeff(MATELEM(r->GetNC()->COM,j,i),r); /* quasicommutative case */
    1128       n_Power(tmp_number,a*b,&tmp_number, r); // BUG! ;-(
     1127      number tmp_number=pGetCoeff(MATELEM(r->GetNC()->COM,j,i)); /* quasicommutative case */
     1128      n_Power(tmp_number,a*b,&tmp_number, r->cf); // BUG! ;-(
    11291129      p_SetCoeff(out,tmp_number,r);
    11301130      return(out);
     
    14241424  /* GCD stuff */
    14251425  number cG = n_SubringGcd(C, cF, r->cf);
    1426   if ( !n_IsOne(cG,r) )
    1427   {
    1428     cF = n_Div(cF, cG, r); n_Normalize(cF, r);
    1429     C  = n_Div(C,  cG, r); n_Normalize(C, r);
     1426  if ( !n_IsOne(cG,r->cf) )
     1427  {
     1428    cF = n_Div(cF, cG, r->cf); n_Normalize(cF, r->cf);
     1429    C  = n_Div(C,  cG, r->cf); n_Normalize(C, r->cf);
    14301430  }
    14311431  else
    14321432  {
    1433     cF = n_Copy(cF, r);
    1434     C  = n_Copy(C, r);
    1435   }
    1436   n_Delete(&cG,r);
     1433    cF = n_Copy(cF, r->cf);
     1434    C  = n_Copy(C, r->cf);
     1435  }
     1436  n_Delete(&cG,r->cf);
    14371437  p2 = p_Mult_nn(p2, C, r);
    14381438  poly out = nc_mm_Mult_pp(m, pNext(p1), r);
     
    14401440  p_Test(p2,r);
    14411441  p_Test(N,r);
    1442   if (!n_IsMOne(cF,r))
    1443   {
    1444     cF = n_InpNeg(cF,r);
     1442  if (!n_IsMOne(cF,r->cf))
     1443  {
     1444    cF = n_InpNeg(cF,r->cf);
    14451445    N  = p_Mult_nn(N, cF, r);
    14461446    p_Test(N,r);
     
    14501450  if ( out!=NULL ) p_Content(out,r);
    14511451  p_Delete(&m,r);
    1452   n_Delete(&cF,r);
    1453   n_Delete(&C,r);
     1452  n_Delete(&cF,r->cf);
     1453  n_Delete(&C,r->cf);
    14541454  return(out);
    14551455}
     
    14861486  number cG = n_SubringGcd(C, cF, r->cf);
    14871487
    1488   if (!n_IsOne(cG, r))
    1489   {
    1490     cF = n_Div(cF, cG, r); n_Normalize(cF, r);
    1491     C  = n_Div(C,  cG, r); n_Normalize(C, r);
     1488  if (!n_IsOne(cG, r->cf))
     1489  {
     1490    cF = n_Div(cF, cG, r->cf); n_Normalize(cF, r->cf);
     1491    C  = n_Div(C,  cG, r->cf); n_Normalize(C, r->cf);
    14921492  }
    14931493  else
    14941494  {
    1495     cF = n_Copy(cF, r);
    1496     C  = n_Copy(C, r);
    1497   }
    1498   n_Delete(&cG,r);
     1495    cF = n_Copy(cF, r->cf);
     1496    C  = n_Copy(C, r->cf);
     1497  }
     1498  n_Delete(&cG,r->cf);
    14991499
    15001500  p2 = p_Mult_nn(p2, C, r); // p2 !!!
    15011501  p_Test(p2,r);
    1502   n_Delete(&C,r);
    1503   n_Delete(&cG,r);
     1502  n_Delete(&C,r->cf);
     1503  n_Delete(&cG,r->cf);
    15041504
    15051505  poly out = nc_mm_Mult_pp(m, pNext(p1), r);
     
    15091509  p_Test(N,r);
    15101510
    1511   if (!n_IsMOne(cF,r)) // ???
    1512   {
    1513     cF = n_InpNeg(cF,r);
     1511  if (!n_IsMOne(cF,r->cf)) // ???
     1512  {
     1513    cF = n_InpNeg(cF,r->cf);
    15141514    N  = p_Mult_nn(N, cF, r);
    15151515    p_Test(N,r);
    15161516  }
    1517   n_Delete(&cF,r);
     1517  n_Delete(&cF,r->cf);
    15181518
    15191519  out = p_Add_q(p2,N,r); // delete N, p2
     
    15711571  /* GCD stuff */
    15721572  number C = n_SubringGcd(C1,C2,r->cf);
    1573   if (!n_IsOne(C,r))
    1574   {
    1575     C1=n_Div(C1,C, r);n_Normalize(C1,r);
    1576     C2=n_Div(C2,C, r);n_Normalize(C2,r);
     1573  if (!n_IsOne(C,r->cf))
     1574  {
     1575    C1=n_Div(C1,C, r->cf);n_Normalize(C1,r->cf);
     1576    C2=n_Div(C2,C, r->cf);n_Normalize(C2,r->cf);
    15771577  }
    15781578  else
    15791579  {
    1580     C1=n_Copy(C1, r);
    1581     C2=n_Copy(C2, r);
    1582   }
    1583   n_Delete(&C,r);
     1580    C1=n_Copy(C1, r->cf);
     1581    C2=n_Copy(C2, r->cf);
     1582  }
     1583  n_Delete(&C,r->cf);
    15841584  M1=p_Mult_nn(M1,C2,r);
    15851585  p_SetCoeff(m1,C2,r);
    1586   if (n_IsMOne(C1,r))
     1586  if (n_IsMOne(C1,r->cf))
    15871587  {
    15881588    M2=p_Add_q(M1,M2,r);
     
    15901590  else
    15911591  {
    1592     C1=n_InpNeg(C1,r);
     1592    C1=n_InpNeg(C1,r->cf);
    15931593    M2=p_Mult_nn(M2,C1,r);
    15941594    M2=p_Add_q(M1,M2,r);
     
    17541754  number C = n_SubringGcd(C1, C2, r->cf);           // C = gcd(C1, C2)
    17551755
    1756   if (!n_IsOne(C, r))                              // if C != 1
    1757   {
    1758     C1=n_Div(C1, C, r);n_Normalize(C1,r);            // C1 = C1 / C
    1759     C2=n_Div(C2, C, r);n_Normalize(C2,r);            // C2 = C2 / C
     1756  if (!n_IsOne(C, r->cf))                              // if C != 1
     1757  {
     1758    C1=n_Div(C1, C, r->cf);n_Normalize(C1,r->cf);            // C1 = C1 / C
     1759    C2=n_Div(C2, C, r->cf);n_Normalize(C2,r->cf);            // C2 = C2 / C
    17601760  }
    17611761  else
    17621762  {
    1763     C1=n_Copy(C1,r);
    1764     C2=n_Copy(C2,r);
    1765   }
    1766 
    1767   n_Delete(&C,r); // destroy the number C
    1768 
    1769   C1=n_InpNeg(C1,r);
     1763    C1=n_Copy(C1,r->cf);
     1764    C2=n_Copy(C2,r->cf);
     1765  }
     1766
     1767  n_Delete(&C,r->cf); // destroy the number C
     1768
     1769  C1=n_InpNeg(C1,r->cf);
    17701770
    17711771//   number MinusOne=n_Init(-1,r);
     
    19151915  M=p_Add_q(M,nc_mm_Mult_p(m,p_LmDeleteAndNext(p_Copy(p1,r),r),r),r); // _pp?
    19161916  q=p_Mult_nn(q,C,r);
    1917   number MinusOne=n_Init(-1,r);
    1918   if (!n_Equal(cQ,MinusOne,r))
     1917  number MinusOne=n_Init(-1,r->cf);
     1918  if (!n_Equal(cQ,MinusOne,r->cf))
    19191919  {
    19201920    cQ=nInpNeg(cQ);
     
    19251925
    19261926  p_Delete(&m,r);
    1927   n_Delete(&C,r);
    1928   n_Delete(&cQ,r);
    1929   n_Delete(&MinusOne,r);
     1927  n_Delete(&C,r->cf);
     1928  n_Delete(&cQ,r->cf);
     1929  n_Delete(&MinusOne,r->cf);
    19301930  /*  return(q); */
    19311931}
     
    19681968  }
    19691969
    1970 //  n_Delete(&p_GetCoeff(m, r), r);
     1970//  n_Delete(&p_GetCoeff(m, r), r->cf);
    19711971//  pSetCoeff0(m, NULL);
    19721972
     
    19831983  // b will not be multiplied by any constant in this impl.
    19841984  // ==> *c=1
    1985   if (c!=NULL) *c=n_Init(1, r);
     1985  if (c!=NULL) *c=n_Init(1, r->cf);
    19861986  poly m=p_One(r);
    19871987  p_ExpVectorDiff(m,kBucketGetLm(b),p, r);
     
    19931993  assume(pp!=NULL);
    19941994  p_Delete(&m, r);
    1995   number n=p_GetCoeff(pp, r);
     1995  number n=pGetCoeff(pp);
    19961996  number nn;
    1997   if (!n_IsMOne(n, r))
    1998   {
    1999     nn=n_InpNeg(n_Invers(n, r), r);
    2000     n= n_Mult(nn,p_GetCoeff(kBucketGetLm(b), r), r);
    2001     n_Delete(&nn, r);
     1997  if (!n_IsMOne(n, r->cf))
     1998  {
     1999    nn=n_InpNeg(n_Invers(n, r->cf), r->cf);
     2000    n= n_Mult(nn,pGetCoeff(kBucketGetLm(b)), r->cf);
     2001    n_Delete(&nn, r->cf);
    20022002    pp=p_Mult_nn(pp,n,r);
    2003     n_Delete(&n, r);
     2003    n_Delete(&n, r->cf);
    20042004  }
    20052005  else
     
    20312031  // b will not be multiplied by any constant in this impl.
    20322032  // ==> *c=1
    2033   if (c!=NULL) *c=n_Init(1, r);
     2033  if (c!=NULL) *c=n_Init(1, r->cf);
    20342034  poly m = p_One(r);
    20352035  const poly pLmB = kBucketGetLm(b); // no new copy!
     
    20592059
    20602060  assume( pp != NULL );
    2061   const number n = p_GetCoeff(pp, r); // bug!
    2062 
    2063   if (!n_IsMOne(n, r) ) // does this improve performance??!? also see below... // TODO: check later on.
     2061  const number n = pGetCoeff(pp); // bug!
     2062
     2063  if (!n_IsMOne(n, r->cf) ) // does this improve performance??!? also see below... // TODO: check later on.
    20642064  // if n == -1 => nn = 1 and -1/n
    20652065  {
    2066     number nn=n_InpNeg(n_Invers(n, r), r);
    2067     number t = n_Mult(nn,p_GetCoeff(pLmB, r), r);
    2068     n_Delete(&nn, r);
     2066    number nn=n_InpNeg(n_Invers(n, r->cf), r->cf);
     2067    number t = n_Mult(nn,pGetCoeff(pLmB), r->cf);
     2068    n_Delete(&nn, r->cf);
    20692069    pp = p_Mult_nn(pp,t,r);
    2070     n_Delete(&t, r);
     2070    n_Delete(&t, r->cf);
    20712071  }
    20722072  else
     
    21162116    //cc=*c;
    21172117    //*c=nMult(*c,c2);
    2118     n_Delete(&c2, r);
     2118    n_Delete(&c2, r->cf);
    21192119    //nDelete(&cc);
    21202120    p_Delete(&pp, r);
    21212121  }
    21222122  if (c!=NULL) *c=ctmp;
    2123   else n_Delete(&ctmp, r);
     2123  else n_Delete(&ctmp, r->cf);
    21242124}
    21252125
     
    21502150    //cc=*c;
    21512151    //*c=nMult(*c,c2);
    2152     n_Delete(&c2, r);
     2152    n_Delete(&c2, r->cf);
    21532153    //nDelete(&cc);
    21542154    p_Delete(&pp, r);
    21552155  }
    21562156  if (c!=NULL) *c=ctmp;
    2157   else n_Delete(&ctmp, r);
     2157  else n_Delete(&ctmp, r->cf);
    21582158}
    21592159
     
    21642164  // b will not by multiplied by any constant in this impl.
    21652165  // ==> *c=1
    2166   if (c!=NULL) *c=n_Init(1, r);
     2166  if (c!=NULL) *c=n_Init(1, r->cf);
    21672167  poly m=p_One(r);
    21682168  p_ExpVectorDiff(m,p_Head(b, r),p, r);
     
    21752175
    21762176  p_Delete(&m, r);
    2177   number n=p_GetCoeff(pp, r);
     2177  number n=pGetCoeff(pp);
    21782178  number nn;
    2179   if (!n_IsMOne(n, r))
    2180   {
    2181     nn=n_InpNeg(n_Invers(n, r), r);
    2182     n =n_Mult(nn,p_GetCoeff(b, r), r);
    2183     n_Delete(&nn, r);
     2179  if (!n_IsMOne(n, r->cf))
     2180  {
     2181    nn=n_InpNeg(n_Invers(n, r->cf), r->cf);
     2182    n =n_Mult(nn,pGetCoeff(b), r->cf);
     2183    n_Delete(&nn, r->cf);
    21842184    pp=p_Mult_nn(pp,n,r);
    2185     n_Delete(&n, r);
     2185    n_Delete(&n, r->cf);
    21862186  }
    21872187  else
     
    22112211  // b will not by multiplied by any constant in this impl.
    22122212  // ==> *c=1
    2213   if (c!=NULL) *c=n_Init(1, r);
     2213  if (c!=NULL) *c=n_Init(1, r->cf);
    22142214
    22152215  poly pp = NULL;
     
    22712271  assume(pp != NULL);
    22722272
    2273   const number n = p_GetCoeff(pp, r); // no new copy
     2273  const number n = pGetCoeff(pp); // no new copy
    22742274
    22752275  number nn;
    22762276
    2277   if (!n_IsMOne(n, r)) // TODO: as above.
    2278   {
    2279     nn=n_InpNeg(n_Invers(n, r), r);
    2280     number t = n_Mult(nn, p_GetCoeff(b, r), r);
    2281     n_Delete(&nn, r);
     2277  if (!n_IsMOne(n, r->cf)) // TODO: as above.
     2278  {
     2279    nn=n_InpNeg(n_Invers(n, r->cf), r->cf);
     2280    number t = n_Mult(nn, pGetCoeff(b), r->cf);
     2281    n_Delete(&nn, r->cf);
    22822282    pp=p_Mult_nn(pp, t, r);
    2283     n_Delete(&t, r);
     2283    n_Delete(&t, r->cf);
    22842284  }
    22852285  else
     
    23322332      if (pres!=NULL)
    23332333      {
    2334         coef = n_Mult(p_GetCoeff(p, r),p_GetCoeff(Q, r), r);
     2334        coef = n_Mult(pGetCoeff(p),pGetCoeff(Q), r->cf);
    23352335        pres = p_Mult_nn(pres,coef,r);
    23362336
    23372337        sum += pres;
    2338         n_Delete(&coef, r);
     2338        n_Delete(&coef, r->cf);
    23392339      }
    23402340      pIter(Q);
     
    23782378          /* compute [ x_j^M1[j],x_i^M2[i] ] */
    23792379          if (i<j) {nMax=j;  nMin=i;} else {nMax=i;  nMin=j;}
    2380           if ( (i==j) || ((MATELEM(r->GetNC()->COM,nMin,nMax)!=NULL) && n_IsOne(p_GetCoeff(MATELEM(r->GetNC()->C,nMin,nMax), r), r) )) /* not (the same exp. or commuting exps)*/
     2380          if ( (i==j) || ((MATELEM(r->GetNC()->COM,nMin,nMax)!=NULL) && n_IsOne(pGetCoeff(MATELEM(r->GetNC()->C,nMin,nMax)), r->cf) )) /* not (the same exp. or commuting exps)*/
    23812381          { bres=NULL; }
    23822382          else
     
    23842384            if (i<j) { bres=gnc_uu_Mult_ww(j,M1[j],i,M2[i], r); }
    23852385            else bres=gnc_uu_Mult_ww(i,M2[i],j,M1[j], r);
    2386             if (n_IsOne(p_GetCoeff(bres, r), r))
     2386            if (n_IsOne(pGetCoeff(bres), r->cf))
    23872387            {
    23882388              bres=p_LmDeleteAndNext(bres, r);
     
    23902390            else
    23912391            {
    2392               nTmp=n_Sub(p_GetCoeff(bres, r),n_Init(1, r), r);
     2392              nTmp=n_Sub(pGetCoeff(bres),n_Init(1, r->cf), r->cf);
    23932393              p_SetCoeff(bres,nTmp, r); /* only lc ! */
    23942394            }
     
    25112511            pIter(p);
    25122512          }
    2513           number ntd = n_Init(totdeg, r);
    2514           number nln = n_Init(length, r);
    2515           number nres= n_Div(ntd,nln, r);
    2516           n_Delete(&ntd, r);
    2517           n_Delete(&nln, r);
     2513          number ntd = n_Init(totdeg, r->cf);
     2514          number nln = n_Init(length, r->cf);
     2515          number nres= n_Div(ntd,nln, r->cf);
     2516          n_Delete(&ntd, r->cf);
     2517          n_Delete(&nln, r->cf);
    25182518          MATELEM(res,s,t)=p_NSet(nres,r);
    25192519        }
     
    28842884    assume(p_IsConstant(CN,curr));
    28852885
    2886     nN = p_GetCoeff(CN, curr);
    2887     if (n_IsZero(nN, curr))
     2886    nN = pGetCoeff(CN);
     2887    if (n_IsZero(nN, curr->cf))
    28882888    {
    28892889      WerrorS("Incorrect input : zero coefficients are not allowed");
     
    28942894    }
    28952895
    2896     if (n_IsOne(nN, curr))
     2896    if (n_IsOne(nN, curr->cf))
    28972897      nctype = nc_lie;
    28982898    else
     
    29682968    IsSkewConstant = tmpIsSkewConstant;
    29692969
    2970     if ( tmpIsSkewConstant && n_IsOne(pN, curr) )
     2970    if ( tmpIsSkewConstant && n_IsOne(pN, curr->cf) )
    29712971      nctype = nc_lie;
    29722972    else
     
    31543154      p = p_One(r);
    31553155      if (MATELEM(r->GetNC()->C,i,j)!=NULL)
    3156         p_SetCoeff(p,n_Copy(pGetCoeff(MATELEM(r->GetNC()->C,i,j)),r),r);
     3156        p_SetCoeff(p,n_Copy(pGetCoeff(MATELEM(r->GetNC()->C,i,j)),r->cf),r);
    31573157      p_SetExp(p,i,1,r);
    31583158      p_SetExp(p,j,1,r);
  • libpolys/polys/nc/sca.cc

    rc4ead28 r06abb07  
    186186
    187187    if( (tpower) != 0 ) // degree is odd => negate coeff.
    188       nCoeffM = n_InpNeg(nCoeffM, rRing); // negate nCoeff (will destroy the original number)
     188      nCoeffM = n_InpNeg(nCoeffM, rRing->cf); // negate nCoeff (will destroy the original number)
    189189
    190190    const number nCoeffMM = p_GetCoeff(pMonomMM, rRing); // no new copy!
    191191
    192     number nCoeff = n_Mult(nCoeffM, nCoeffMM, rRing); // new number!
     192    number nCoeff = n_Mult(nCoeffM, nCoeffMM, rRing->cf); // new number!
    193193
    194194    p_SetCoeff(pMonomM, nCoeff, rRing); // delete lc(pMonomM) and set lc(pMonomM) = nCoeff
     
    250250
    251251    if( (tpower) != 0 ) // degree is odd => negate coeff.
    252       nCoeffM = n_InpNeg(nCoeffM, rRing); // negate nCoeff (will destroy the original number), creates new number!
     252      nCoeffM = n_InpNeg(nCoeffM, rRing->cf); // negate nCoeff (will destroy the original number), creates new number!
    253253
    254254    const number nCoeffMM = p_GetCoeff(pMonomMM, rRing); // no new copy!
    255255
    256     number nCoeff = n_Mult(nCoeffM, nCoeffMM, rRing); // new number!
     256    number nCoeff = n_Mult(nCoeffM, nCoeffMM, rRing->cf); // new number!
    257257
    258258    p_SetCoeff(pMonomM, nCoeff, rRing); // delete lc(pMonomM) and set lc(pMonomM) = nCoeff
     
    318318    const number nCoeff2 = p_GetCoeff(pMonom2, rRing); // no new copy!
    319319
    320     number nCoeff = n_Mult(nCoeff1, nCoeff2, rRing); // new number!
     320    number nCoeff = n_Mult(nCoeff1, nCoeff2, rRing->cf); // new number!
    321321
    322322    if( (tpower) != 0 ) // degree is odd => negate coeff.
    323       nCoeff = n_InpNeg(nCoeff, rRing); // negate nCoeff (will destroy the original number)
     323      nCoeff = n_InpNeg(nCoeff, rRing->cf); // negate nCoeff (will destroy the original number)
    324324
    325325    p_SetCoeff0(pResult, nCoeff, rRing); // set lc(pResult) = nCoeff, no destruction!
     
    363363    p_Setm(pResult, rRing);         // addjust degree after previous step!
    364364
    365     number nCoeff = n_Copy(p_GetCoeff(pMonom, rRing), rRing); // new number!
     365    number nCoeff = n_Copy(pGetCoeff(pMonom), rRing->cf); // new number!
    366366
    367367    if( cpower != 0 ) // degree is odd => negate coeff.
    368       nCoeff = n_InpNeg(nCoeff, rRing); // negate nCoeff (will destroy the original number)
     368      nCoeff = n_InpNeg(nCoeff, rRing->cf); // negate nCoeff (will destroy the original number)
    369369
    370370    p_SetCoeff0(pResult, nCoeff, rRing); // set lc(pResult) = nCoeff, no destruction!
     
    791791  p_Delete(&pL,r);
    792792
    793   number C1  = n_Copy(p_GetCoeff(p1,r),r);      // C1 = lc(p1)
    794   number C2  = n_Copy(p_GetCoeff(p2,r),r);      // C2 = lc(p2)
    795 
    796   number C = n_Gcd(C1,C2,r);                     // C = gcd(C1, C2)
    797 
    798   if (!n_IsOne(C, r))                              // if C != 1
    799   {
    800     C1=n_Div(C1, C, r);                              // C1 = C1 / C
    801     C2=n_Div(C2, C, r);                              // C2 = C2 / C
    802   }
    803 
    804   n_Delete(&C,r); // destroy the number C
     793  number C1  = n_Copy(pGetCoeff(p1),r->cf);      // C1 = lc(p1)
     794  number C2  = n_Copy(pGetCoeff(p2),r->cf);      // C2 = lc(p2)
     795
     796  number C = n_Gcd(C1,C2,r->cf);                     // C = gcd(C1, C2)
     797
     798  if (!n_IsOne(C, r->cf))                              // if C != 1
     799  {
     800    C1=n_Div(C1, C, r->cf);                              // C1 = C1 / C
     801    C2=n_Div(C2, C, r->cf);                              // C2 = C2 / C
     802  }
     803
     804  n_Delete(&C,r->cf); // destroy the number C
    805805
    806806  const int iSignSum = sca_Sign_mm_Mult_mm (m1, p1, r) + sca_Sign_mm_Mult_mm (m2, p2, r);
     
    810810
    811811  if( iSignSum != 0 ) // the same sign!
    812     C2=n_InpNeg (C2, r);
     812    C2=n_InpNeg (C2, r->cf);
    813813
    814814  p_SetCoeff(m1, C2, r);                           // lc(m1) = C2!!!
     
    865865#endif
    866866
    867   number C1 = n_Copy( p_GetCoeff(p1, r), r);
    868   number C2 = n_Copy( p_GetCoeff(p2, r), r);
     867  number C1 = n_Copy( pGetCoeff(p1), r->cf);
     868  number C2 = n_Copy( pGetCoeff(p2), r->cf);
    869869
    870870  /* GCD stuff */
    871   number C = n_Gcd(C1, C2, r);
    872 
    873   if (!n_IsOne(C, r))
    874   {
    875     C1 = n_Div(C1, C, r);
    876     C2 = n_Div(C2, C, r);
    877   }
    878   n_Delete(&C,r);
     871  number C = n_Gcd(C1, C2, r->cf);
     872
     873  if (!n_IsOne(C, r->cf))
     874  {
     875    C1 = n_Div(C1, C, r->cf);
     876    C2 = n_Div(C2, C, r->cf);
     877  }
     878  n_Delete(&C,r->cf);
    879879
    880880  const int iSign = sca_Sign_mm_Mult_mm( m, p1, r );
    881881
    882882  if(iSign == 1)
    883     C2 = n_InpNeg(C2,r);
     883    C2 = n_InpNeg(C2,r->cf);
    884884
    885885  p_SetCoeff(m, C2, r);
     
    892892
    893893  p2 = p_Mult_nn(p2, C1, r); // p2 !!!
    894   n_Delete(&C1,r);
     894  n_Delete(&C1,r->cf);
    895895
    896896  poly T = nc_mm_Mult_pp(m, pNext(p1), r);
     
    10071007      number c = p_GetCoeff(MATELEM(C,i,j), rBase);
    10081008
    1009       if( n_IsMOne(c, rBase) ) // !!!???
     1009      if( n_IsMOne(c, rBase->cf) ) // !!!???
    10101010      {
    10111011        if( i < iAltVarStart)
     
    10161016      } else
    10171017      {
    1018         if( !n_IsOne(c, rBase) )
     1018        if( !n_IsOne(c, rBase->cf) )
    10191019        {
    10201020#if ((defined(PDEBUG) && OUTPUT) || MYTEST)
     
    10451045      if( (iAltVarStart <= i) && (j <= iAltVarEnd) ) // S <= i < j <= E
    10461046      { // anticommutative part
    1047         if( !n_IsMOne(c, rBase) )
     1047        if( !n_IsMOne(c, rBase->cf) )
    10481048        {
    10491049#if ((defined(PDEBUG) && OUTPUT) || MYTEST)
     
    10521052          return false;
    10531053        }
    1054       } else
     1054      }
     1055      else
    10551056      { // should commute
    1056         if( !n_IsOne(c, rBase) )
     1057        if( !n_IsOne(c, rBase->cf) )
    10571058        {
    10581059#if ((defined(PDEBUG) && OUTPUT) || MYTEST)
  • libpolys/polys/sparsmat.cc

    rc4ead28 r06abb07  
    27512751        {
    27522752          ap->n = a->n;
    2753           a->m = n_InpNeg(a->m,_R);
     2753          a->m = n_InpNeg(a->m,_R->cf);
    27542754          b = b->n = a;
    27552755          b->pos = i;
     
    27612761    {
    27622762      m_act[i] = a->n;
    2763       a->m = n_InpNeg(a->m,_R);
     2763      a->m = n_InpNeg(a->m,_R->cf);
    27642764      b = b->n = a;
    27652765      b->pos = i;
Note: See TracChangeset for help on using the changeset viewer.