Changeset cfecd2 in git


Ignore:
Timestamp:
Aug 12, 2011, 5:09:01 PM (13 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', '5b153614cbc72bfa198d75b1e9e33dab2645d9fe')
Children:
94a065cc1eef470efefb950abf185f50c06ba20d
Parents:
a374b8bab94e13d254d807da4110c48b626fe5ab
git-author:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2011-08-12 17:09:01+02:00
git-committer:
Mohamed Barakat <mohamed.barakat@rwth-aachen.de>2011-11-09 13:22:43+01:00
Message:
add n_RePart and n_ImPart to coeffs.h
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • Singular/iparith.cc

    ra374b8 rcfecd2  
    35873587  int dummy;
    35883588  poly p=(poly)v->Data();
    3589   if (p!=NULL) res->data = (char *)pLDeg(p,&dummy,currRing);
     3589  if (p!=NULL) res->data = (char *)currRing->pLDeg(p,&dummy,currRing);
    35903590  else res->data=(char *)-1;
    35913591  return FALSE;
     
    35983598  int i;
    35993599  for(i=IDELEMS(I)-1;i>=0;i--)
    3600     if (I->m[i]!=NULL) d=si_max(d,(int)pLDeg(I->m[i],&dummy,currRing));
     3600    if (I->m[i]!=NULL) d=si_max(d,(int)currRing->pLDeg(I->m[i],&dummy,currRing));
    36013601  res->data = (char *)(long)d;
    36023602  return FALSE;
     
    36103610    ring origR = currRing;
    36113611    ring tempR = rCopy(origR);
    3612     tempR->ringtype = 0; tempR->ch = 0;
     3612    coeffs new_cf=nInitChar(n_Q,NULL);
     3613    nKillChar(tempR->cf);
     3614    tempR->cf=new_cf;
    36133615    rComplete(tempR);
    36143616    ideal vid = (ideal)v->Data();
     
    36603662  }
    36613663  else
    3662     p=singclap_det(m);
     3664    p=singclap_det(m,currRing);
    36633665  res ->data = (char *)p;
    36643666  return FALSE;
     
    36703672  i=m->rows();j=m->cols();
    36713673  if(i==j)
    3672     res->data = (char *)(long)singclap_det_i(m);
     3674    res->data = (char *)(long)singclap_det_i(m,currRing);
    36733675  else
    36743676  {
     
    36863688  {
    36873689    matrix m=idModule2Matrix(idCopy(I));
    3688     p=singclap_det(m);
     3690    p=singclap_det(m,currRing);
    36893691    idDelete((ideal *)&m);
    36903692  }
     
    37033705    ring origR = currRing;
    37043706    ring tempR = rCopy(origR);
    3705     tempR->ringtype = 0; tempR->ch = 0;
     3707    coeffs new_cf=nInitChar(n_Q,NULL);
     3708    nKillChar(tempR->cf);
     3709    tempR->cf=new_cf;
    37063710    rComplete(tempR);
    37073711    ideal vid = (ideal)v->Data();
    37083712    int i = idPosConstant(vid);
    3709     if ((i != -1) && (nIsUnit(pGetCoeff(vid->m[i]))))
     3713    if ((i != -1) && (n_IsUnit(pGetCoeff(vid->m[i]),currRing->cf)))
    37103714    { /* ideal v contains unit; dim = -1 */
    37113715      res->data = (char *)-1;
     
    38113815  intvec *v=NULL;
    38123816  singclap_factorize_retry=0;
    3813   ideal f=singclap_factorize((poly)(u->CopyD()), &v, 0);
     3817  ideal f=singclap_factorize((poly)(u->CopyD()), &v, 0,currRing);
    38143818  if (f==NULL) return TRUE;
    38153819  ivTest(v);
     
    38533857  int i;
    38543858  poly p=NULL,po=NULL;
    3855   int rk=idRankFreeModule(I);
     3859  int rk=id_RankFreeModule(I,currRing);
    38563860  if (w==NULL)
    38573861  {
     
    38753879    {
    38763880      // now po!=NULL, p!=NULL
    3877       int d=(pFDeg(po,currRing)-(*w)[pGetComp(po)-1] - pFDeg(p,currRing)+(*w)[i-1]);
     3881      int d=(currRing->pFDeg(po,currRing)-(*w)[pGetComp(po)-1] - currRing->pFDeg(p,currRing)+(*w)[i-1]);
    38783882      if (d==0)
    38793883        d=pLmCmp(po,p);
     
    38993903    ring origR = currRing;
    39003904    ring tempR = rCopy(origR);
    3901     tempR->ringtype = 0; tempR->ch = 0;
     3905    coeffs new_cf=nInitChar(n_Q,NULL);
     3906    nKillChar(tempR->cf);
     3907    tempR->cf=new_cf;
    39023908    rComplete(tempR);
    39033909    ideal vid = (ideal)v->Data();
     
    40314037static BOOLEAN jjIMPART(leftv res, leftv v)
    40324038{
    4033   res->data = (char *)nImPart((number)v->Data());
     4039  res->data = (char *)n_ImPart((number)v->Data(),currRing->cf);
    40344040  return FALSE;
    40354041}
     
    41924198  else
    41934199  {
    4194 #if !defined(OM_NDEBUG) && !defined(NDEBUG)
    4195     omCheckBin(rnumber_bin);
    4196 #endif
    4197     number z=(number)omAllocBin(rnumber_bin);
     4200     struct snumber_dummy
     4201     {
     4202      mpz_t z;
     4203      mpz_t n;
     4204      #if defined(LDEBUG)
     4205      int debug;
     4206      #endif
     4207      BOOLEAN s;
     4208    };
     4209    typedef struct snumber_dummy  *number_dummy;
     4210 
     4211    number_dummy z=(number)omAlloc(sizeof(snumber_dummy));
    41984212    #if defined(LDEBUG)
    41994213    z->debug=123456;
     
    42014215    z->s=3;
    42024216    mpz_init_set_si(z->z,d);
    4203     return z;
     4217    return (number)z;
    42044218  }
    42054219}
     
    43114325{
    43124326  number n,i; i=(number)v->Data();
    4313   if (rField_is_Zp(currRing))
    4314   {
    4315     n=n_Init(n_Int(i,currRing->cf),coeffs_BIGINT);
    4316   }
    4317   else if (rField_is_Q(currRing)) n=nlBigInt(i);
    4318 #ifdef HAVE_RINGS
    4319   else if (rField_is_Ring_Z(currRing) || rField_is_Ring_ModN(currRing) || rField_is_Ring_PtoM(currRing)) n=nlMapGMP(i);
    4320   else if (rField_is_Ring_2toM(currRing)) n=n_Init((unsigned long) i,coeffs_BIGINT);
    4321 #endif
     4327  nMapFunc nMap=n_SetMap(currRing->cf,coeffs_BIGINT);
     4328  if (nMap!=NULL)
     4329    n=nMap(i,currRing->cf,coeffs_BIGINT);
    43224330  else goto err;
    43234331  res->data=(void *)n;
     
    43524360{
    43534361  poly p=(poly)v->Data();
    4354   res->data=(char *)( p==NULL ? -1 : pFDeg(p,currRing) );
     4362  res->data=(char *)( p==NULL ? -1 : currRing->pFDeg(p,currRing) );
    43554363  return FALSE;
    43564364}
     
    44054413  number i=pGetCoeff(p);
    44064414  number n;
    4407   if (rField_is_Zp())
    4408   {
    4409     n=n_Init(npInt(i,currRing), coeffs_BIGINT);
    4410   }
    4411   else if (rField_is_Q(currRing)) n=nlBigInt(i);
    4412 #ifdef HAVE_RINGS
    4413   else if (rField_is_Ring_Z() || rField_is_Ring_ModN() || rField_is_Ring_PtoM())
    4414     n=nlMapGMP(i);
    4415   else if (rField_is_Ring_2toM())
    4416     n=n_Init((unsigned long) i, coeffs_BIGINT);
    4417 #endif
     4415  nMapFunc nMap=n_SetMap(currRing->cf,coeffs_BIGINT);
     4416  if (nMap!=NULL)
     4417    n=nMap(i,currRing->cf,coeffs_BIGINT);
    44184418  else goto err;
    44194419  res->data=(void *)n;
     
    45214521static BOOLEAN jjREPART(leftv res, leftv v)
    45224522{
    4523   res->data = (char *)nRePart((number)v->Data());
     4523  res->data = (char *)n_RePart((number)v->Data(),currRing->cf);
    45244524  return FALSE;
    45254525}
     
    46284628  intvec *v=NULL;
    46294629  singclap_factorize_retry=0;
    4630   ideal f=singclap_sqrfree((poly)(u->CopyD()));
     4630  ideal f=singclap_sqrfree((poly)(u->CopyD()),currRing);
    46314631  if (f==NULL)
    46324632    return TRUE;
     
    51145114{
    51155115  number n=(number)u->Data();
    5116   res->data=(char *)(long)n_Int(n,currRing);
     5116  res->data=(char *)(long)n_Int(n,currRing->cf);
    51175117  return FALSE;
    51185118}
     
    54965496    ring origR = currRing;
    54975497    ring tempR = rCopy(origR);
    5498     tempR->ringtype = 0; tempR->ch = 0;
     5498    coeffs new_cf=nInitChar(n_Q,NULL);
     5499    nKillChar(tempR->cf);
     5500    tempR->cf=new_cf;
    54995501    rComplete(tempR);
    55005502    ideal uid = (ideal)u->Data();
     
    56015603static BOOLEAN jjJET_P_IV(leftv res, leftv u, leftv v, leftv w)
    56025604{
    5603   short *iw=iv2array((intvec *)w->Data());
     5605  short *iw=iv2array((intvec *)w->Data(),currRing);
    56045606  res->data = (char *)ppJetW((poly)u->Data(),(int)(long)v->Data(),iw);
    56055607  omFreeSize((ADDRESS)iw,(currRing->N+1)*sizeof(short));
     
    56365638{
    56375639  /* true for fields and Z, false otherwise */
    5638   if (rField_is_Ring_PtoM()) return FALSE;
    5639   if (rField_is_Ring_2toM()) return FALSE;
    5640   if (rField_is_Ring_ModN()) return FALSE;
     5640  if (rField_is_Ring_PtoM(currRing)) return FALSE;
     5641  if (rField_is_Ring_2toM(currRing)) return FALSE;
     5642  if (rField_is_Ring_ModN(currRing)) return FALSE;
    56415643  return TRUE;
    56425644}
     
    59655967      assume(currRing->extRing!=NULL);
    59665968      lnumber n=(lnumber)pGetCoeff(p);
    5967       ringvar=-p_Var(n->z,currRing->extRing);
     5969      ringvar=-p_Var(n->z,currRing->cf->extRing);
    59685970    }
    59695971    if(ringvar==0)
  • libpolys/coeffs/coeffs.h

    ra374b8 rcfecd2  
    601601}
    602602
     603static inline number  n_RePart(number i, const coeffs cf)
     604{
     605  assume(cf != NULL); assume(cf->cfRePart!=NULL);
     606  return cf->cfRePart(i,cf);
     607}
     608static inline number  n_ImPart(number i, const coeffs cf)
     609{
     610  assume(cf != NULL); assume(cf->cfImPart!=NULL);
     611  return cf->cfImpart(i,cf);
     612}
     613
    603614/// returns TRUE, if r is not a field and r has non-trivial units
    604615static inline BOOLEAN nCoeff_has_Units(const coeffs r)
     
    702713
    703714// Missing wrappers for: (TODO: review this?)
    704 // cfIntMod, cfRePart, cfImPart, cfRead, cfName, cfInit_bigint
     715// cfIntMod, cfRead, cfName, cfInit_bigint
    705716// HAVE_RINGS: cfDivComp, cfExtGcd...
    706717
Note: See TracChangeset for help on using the changeset viewer.