Changeset a5bbb5 in git for Singular/iparith.cc


Ignore:
Timestamp:
Jan 9, 2017, 2:02:30 PM (7 years ago)
Author:
Hans Schoenemann <hannes@…>
Branches:
(u'spielwiese', 'fe61d9c35bf7c61f2b6cbf1b56e25e2f08d536cc')
Children:
b8b76ef3092b3162aa763b4c5b7705ceab2203fa
Parents:
a418d9fffbccc54b2388850e64bfc084cd0e61dcd29e550951bb89f260d4afb0da084c6a1a83e101
git-author:
Hans Schoenemann <hannes@mathematik.uni-kl.de>2017-01-09 14:02:30+01:00
git-committer:
GitHub <noreply@github.com>2017-01-09 14:02:30+01:00
Message:
Merge pull request #810 from YueRen/tropicallib

chg: kghostview -> xdg-open + line breaks after commata in tex file
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Singular/iparith.cc

    rd29e550 ra5bbb5  
    2424#include <misc/prime.h>
    2525
    26 #include <polys/prCopy.h>
    2726#include <polys/matpol.h>
    2827#include <polys/monomials/maps.h>
     
    18711870  if (rField_is_Ring(currRing))
    18721871  {
    1873     //ring origR = currRing;
    1874     //ring tempR = rCopy(origR);
    1875     //coeffs new_cf=nInitChar(n_Q,NULL);
    1876     //nKillChar(tempR->cf);
    1877     //tempR->cf=new_cf;
    1878     //rComplete(tempR);
    18791872    ideal vid = (ideal)v->Data();
    18801873    int i = idPosConstant(vid);
     
    18841877      return FALSE;
    18851878    }
    1886     //rChangeCurrRing(tempR);
    1887     //ideal vv = idrCopyR(vid, origR, currRing);
    18881879    ideal vv = id_Copy(vid, currRing);
    1889     //ideal ww = idrCopyR((ideal)w->Data(), origR, currRing);
    18901880    ideal ww = id_Copy((ideal)w->Data(), currRing);
    18911881    /* drop degree zero generator from vv (if any) */
     
    18951885    res->data = (char *)d;
    18961886    idDelete(&vv); idDelete(&ww);
    1897     //rChangeCurrRing(origR);
    1898     //rDelete(tempR);
    18991887    return FALSE;
    19001888  }
     
    23092297  if (rField_is_Ring_Z(currRing))
    23102298  {
    2311     ring origR = currRing;
    2312     ring tempR = rCopy(origR);
    2313     coeffs new_cf=nInitChar(n_Q,NULL);
    2314     nKillChar(tempR->cf);
    2315     tempR->cf=new_cf;
    2316     rComplete(tempR);
    2317     ideal uid = (ideal)u->Data();
    2318     rChangeCurrRing(tempR);
    2319     ideal uu = idrCopyR(uid, origR, currRing);
    2320     sleftv uuAsLeftv; memset(&uuAsLeftv, 0, sizeof(uuAsLeftv));
    2321     uuAsLeftv.rtyp = IDEAL_CMD;
    2322     uuAsLeftv.data = uu; uuAsLeftv.next = NULL;
    2323     if (hasFlag(u, FLAG_STD)) setFlag(&uuAsLeftv,FLAG_STD);
    2324     assumeStdFlag(&uuAsLeftv);
    23252299    PrintS("// NOTE: computation of Hilbert series etc. is being\n");
    23262300    PrintS("//       performed for generic fibre, that is, over Q\n");
    2327     intvec *module_w=(intvec*)atGet(&uuAsLeftv,"isHomog",INTVEC_CMD);
    2328     intvec *iv=hFirstSeries(uu,module_w,currRing->qideal);
    2329     int returnWithTrue = 1;
    2330     switch((int)(long)v->Data())
    2331     {
    2332       case 1:
    2333         res->data=(void *)iv;
    2334         returnWithTrue = 0;
    2335       case 2:
    2336         res->data=(void *)hSecondSeries(iv);
    2337         delete iv;
    2338         returnWithTrue = 0;
    2339     }
    2340     if (returnWithTrue)
    2341     {
    2342       WerrorS(feNotImplemented);
    2343       delete iv;
    2344     }
    2345     idDelete(&uu);
    2346     rChangeCurrRing(origR);
    2347     rDelete(tempR);
    2348     if (returnWithTrue) return TRUE; else return FALSE;
    23492301  }
    23502302#endif
     
    37683720{
    37693721  SPrintStart();
     3722#ifdef HAVE_RINGS
    37703723  if (rField_is_Ring_Z(currRing))
    37713724  {
    3772     ring origR = currRing;
    3773     ring tempR = rCopy(origR);
    3774     coeffs new_cf=nInitChar(n_Q,NULL);
    3775     nKillChar(tempR->cf);
    3776     tempR->cf=new_cf;
    3777     rComplete(tempR);
    3778     ideal vid = (ideal)v->Data();
    3779     rChangeCurrRing(tempR);
    3780     ideal vv = idrCopyR(vid, origR, currRing);
    3781     sleftv vvAsLeftv; memset(&vvAsLeftv, 0, sizeof(vvAsLeftv));
    3782     vvAsLeftv.rtyp = IDEAL_CMD;
    3783     vvAsLeftv.data = vv; vvAsLeftv.next = NULL;
    3784     if (hasFlag(v, FLAG_STD)) setFlag(&vvAsLeftv,FLAG_STD);
    3785     assumeStdFlag(&vvAsLeftv);
    37863725    PrintS("// NOTE: computation of degree is being performed for\n");
    37873726    PrintS("//       generic fibre, that is, over Q\n");
    3788     intvec *module_w=(intvec*)atGet(&vvAsLeftv,"isHomog",INTVEC_CMD);
    3789     scDegree(vv,module_w,currRing->qideal);
    3790     idDelete(&vv);
    3791     rChangeCurrRing(origR);
    3792     rDelete(tempR);
    3793   }
     3727  }
     3728#endif
    37943729  assumeStdFlag(v);
    37953730  intvec *module_w=(intvec*)atGet(v,"isHomog",INTVEC_CMD);
     
    39183853     Warn("dim(%s) may be wrong because the mixed monomial ordering",v->Name());
    39193854  }
     3855#ifdef HAVE_RINGS
    39203856  if (rField_is_Ring(currRing))
    39213857  {
     
    39823918    return FALSE;
    39833919  }
     3920#endif
    39843921  res->data = (char *)(long)scDimInt((ideal)(v->Data()),currRing->qideal);
    39853922  return FALSE;
     
    41464083static BOOLEAN jjHILBERT(leftv, leftv v)
    41474084{
     4085#ifdef HAVE_RINGS
    41484086  if (rField_is_Ring_Z(currRing))
    41494087  {
    4150     ring origR = currRing;
    4151     ring tempR = rCopy(origR);
    4152     coeffs new_cf=nInitChar(n_Q,NULL);
    4153     nKillChar(tempR->cf);
    4154     tempR->cf=new_cf;
    4155     rComplete(tempR);
    4156     ideal vid = (ideal)v->Data();
    4157     rChangeCurrRing(tempR);
    4158     ideal vv = idrCopyR(vid, origR, currRing);
    4159     sleftv vvAsLeftv; memset(&vvAsLeftv, 0, sizeof(vvAsLeftv));
    4160     vvAsLeftv.rtyp = IDEAL_CMD;
    4161     vvAsLeftv.data = vv; vvAsLeftv.next = NULL;
    4162     if (hasFlag(v, FLAG_STD)) setFlag(&vvAsLeftv,FLAG_STD);
    4163     assumeStdFlag(&vvAsLeftv);
    41644088    PrintS("// NOTE: computation of Hilbert series etc. is being\n");
    41654089    PrintS("//       performed for generic fibre, that is, over Q\n");
    4166     intvec *module_w=(intvec*)atGet(&vvAsLeftv,"isHomog",INTVEC_CMD);
    4167     //scHilbertPoly(vv,currRing->qideal);
    4168     hLookSeries(vv,module_w,currRing->qideal);
    4169     idDelete(&vv);
    4170     rChangeCurrRing(origR);
    4171     rDelete(tempR);
    4172     return FALSE;
    4173   }
     4090  }
     4091#endif
    41744092  assumeStdFlag(v);
    41754093  intvec *module_w=(intvec*)atGet(v,"isHomog",INTVEC_CMD);
     
    41804098static BOOLEAN jjHILBERT_IV(leftv res, leftv v)
    41814099{
     4100#ifdef HAVE_RINGS
    41824101  if (rField_is_Ring_Z(currRing))
    41834102  {
     
    41854104    PrintS("//       performed for generic fibre, that is, over Q\n");
    41864105  }
     4106#endif
    41874107  res->data=(void *)hSecondSeries((intvec *)v->Data());
    41884108  return FALSE;
     
    42934213{
    42944214  ideal result=kInterRed((ideal)(v->Data()), currRing->qideal);
     4215#ifdef HAVE_RINGS
    42954216  if(rField_is_Ring(currRing))
    4296     Warn("interred: this command is experimental over the integers");
     4217    WarnS("interred: this command is experimental over the integers");
     4218#endif
    42974219  if (TEST_OPT_PROT) { PrintLn(); mflush(); }
    42984220  res->data = result;
     
    57825704    return TRUE;
    57835705  }
     5706#ifdef HAVE_RINGS
    57845707  if (rField_is_Ring_Z(currRing))
    57855708  {
    5786     ring origR = currRing;
    5787     ring tempR = rCopy(origR);
    5788     coeffs new_cf=nInitChar(n_Q,NULL);
    5789     nKillChar(tempR->cf);
    5790     tempR->cf=new_cf;
    5791     rComplete(tempR);
    5792     ideal uid = (ideal)u->Data();
    5793     rChangeCurrRing(tempR);
    5794     ideal uu = idrCopyR(uid, origR, currRing);
    5795     sleftv uuAsLeftv; memset(&uuAsLeftv, 0, sizeof(uuAsLeftv));
    5796     uuAsLeftv.rtyp = IDEAL_CMD;
    5797     uuAsLeftv.data = uu; uuAsLeftv.next = NULL;
    5798     if (hasFlag(u, FLAG_STD)) setFlag(&uuAsLeftv,FLAG_STD);
    5799     assumeStdFlag(&uuAsLeftv);
    58005709    PrintS("// NOTE: computation of Hilbert series etc. is being\n");
    58015710    PrintS("//       performed for generic fibre, that is, over Q\n");
    5802     intvec *module_w=(intvec*)atGet(&uuAsLeftv,"isHomog",INTVEC_CMD);
    5803     intvec *iv=hFirstSeries(uu,module_w,currRing->qideal,wdegree);
    5804     int returnWithTrue = 1;
    5805     switch((int)(long)v->Data())
    5806     {
    5807       case 1:
    5808         res->data=(void *)iv;
    5809         returnWithTrue = 0;
    5810       case 2:
    5811         res->data=(void *)hSecondSeries(iv);
    5812         delete iv;
    5813         returnWithTrue = 0;
    5814     }
    5815     if (returnWithTrue)
    5816     {
    5817       WerrorS(feNotImplemented);
    5818       delete iv;
    5819     }
    5820     idDelete(&uu);
    5821     rChangeCurrRing(origR);
    5822     rDelete(tempR);
    5823     if (returnWithTrue) return TRUE; else return FALSE;
    5824   }
     5711  }
     5712#endif
    58255713  assumeStdFlag(u);
    58265714  intvec *module_w=(intvec *)atGet(u,"isHomog",INTVEC_CMD);
     
    58365724      return FALSE;
    58375725  }
     5726  delete iv;
    58385727  WerrorS(feNotImplemented);
    5839   delete iv;
    58405728  return TRUE;
    58415729}
     
    59235811                               (matrix)v->CopyD());
    59245812  return FALSE;
    5925 }
    5926 static BOOLEAN currRingIsOverIntegralDomain ()
    5927 {
    5928   /* true for fields and Z, false otherwise */
    5929   if (rField_is_Ring_PtoM(currRing)) return FALSE;
    5930   if (rField_is_Ring_2toM(currRing)) return FALSE;
    5931   if (rField_is_Ring_ModN(currRing)) return FALSE;
    5932   return TRUE;
    59335813}
    59345814static BOOLEAN jjMINOR_M(leftv res, leftv v)
     
    60945974  }
    60955975  if ((!noAlgorithm) && (strcmp(algorithm, "Bareiss") == 0)
    6096       && (!currRingIsOverIntegralDomain()))
     5976      && (!rField_is_Domain(currRing)))
    60975977  {
    60985978    Werror("Bareiss algorithm not defined over coefficient rings %s",
     
    91619041  }
    91629042  #endif
     9043#ifdef HAVE_RINGS
    91639044  if (rField_is_Ring(currRing))
    91649045  {
     
    91819062    }
    91829063  }
     9064#endif
    91839065  return FALSE;
    91849066}
Note: See TracChangeset for help on using the changeset viewer.