Changeset e744d9 in git


Ignore:
Timestamp:
Jul 17, 2014, 12:28:18 PM (9 years ago)
Author:
Yue Ren <ren@…>
Branches:
(u'spielwiese', 'a7324b6e0b44a1a8ed3fa4d9ca3e2ff210ddd52c')
Children:
eb836ceccfffe01622457439ed104bca800bc101
Parents:
3c0aa5079c417e92fdfaa03c1d87d73f5b365291
git-author:
Yue Ren <ren@mathematik.uni-kl.de>2014-07-17 12:28:18+02:00
git-committer:
Yue Ren <ren@mathematik.uni-kl.de>2015-02-06 13:47:03+01:00
Message:
chg: status update 17.07.
Files:
2 added
10 edited

Legend:

Unmodified
Added
Removed
  • Singular/dyn_modules/gfanlib/Makefile.am

    r3c0aa5 re744d9  
    11ACLOCAL_AMFLAGS = -I ../../m4
    22
    3 SOURCES = gfanlib_exceptions.h callgfanlib_conversion.cc callgfanlib_conversion.h bbcone.cc bbcone.h bbfan.cc bbfan.h bbpolytope.cc bbpolytope.h gfan.h gitfan.cc gitfan.h tropicalVarietyOfPolynomials.h tropicalVarietyOfPolynomials.cc ppinitialReduction.cc ppinitialReduction.h ttinitialReduction.cc ttinitialReduction.h containsMonomial.cc containsMonomial.h adjustWeights.cc adjustWeights.h tropicalStrategy.cc tropicalStrategy.h initial.cc initial.h witness.cc witness.h lift.cc lift.h flip.cc flip.h tropicalCurves.cc tropicalCurves.h groebnerCone.cc groebnerCone.h startingCone.cc startingCone.h tropicalTraversal.cc tropicalTraversal.h tropicalVarietyOfIdeals.cc tropicalVarietyOfIdeals.h tropicalVariety.cc tropicalVariety.h tropical.cc tropical.h gfanlib.cc
     3SOURCES = gfanlib_exceptions.h callgfanlib_conversion.cc callgfanlib_conversion.h bbcone.cc bbcone.h bbfan.cc bbfan.h bbpolytope.cc bbpolytope.h gfan.h gitfan.cc gitfan.h std_wrapper.cc std_wrapper.h tropicalVarietyOfPolynomials.h tropicalVarietyOfPolynomials.cc ppinitialReduction.cc ppinitialReduction.h ttinitialReduction.cc ttinitialReduction.h containsMonomial.cc containsMonomial.h adjustWeights.cc adjustWeights.h tropicalStrategy.cc tropicalStrategy.h initial.cc initial.h witness.cc witness.h lift.cc lift.h flip.cc flip.h tropicalCurves.cc tropicalCurves.h groebnerCone.cc groebnerCone.h startingCone.cc startingCone.h tropicalTraversal.cc tropicalTraversal.h tropicalVarietyOfIdeals.cc tropicalVarietyOfIdeals.h tropicalVariety.cc tropicalVariety.h tropical.cc tropical.h gfanlib.cc
    44
    55MY_CPPFLAGS =  -I${top_srcdir} -I${top_builddir} \
  • Singular/dyn_modules/gfanlib/containsMonomial.cc

    r3c0aa5 re744d9  
    148148  }
    149149
    150 
    151150  J = kStd(J,NULL,isHomog,NULL);
    152151
     
    166165poly checkForMonomialViaSuddenSaturation(const ideal I, const ring r)
    167166{
    168   // assume(rField_is_Ring_Z(currRing));
    169 
    170   // ring s = rCopy0(r);
    171   // nKillChar(s->cf);
    172   // s->cf = nInitChar(n_Zp,(void*)(long)n_Int(p_GetCoeff(I->m[0],currRing),currRing->cf));
    173   // rComplete(s); rChangeCurrRing(s);
    174   // int k = idSize(I);
    175   // ideal J = idInit(k-1);
    176   // nMapFunc nMap = n_SetMap(r->cf,r->cf);
    177   // for (int i=1; i<k; i++)
    178   // {
    179   //   J->m[i-1] = p_PermPoly(I->m[i],NULL,r,r,nMap,NULL,0);
    180   //   p_Test(J->m[i-1],currRing);
    181   // }
    182167  ring origin = currRing;
    183168  ideal M = idInit(1);
  • Singular/dyn_modules/gfanlib/groebnerCone.cc

    r3c0aa5 re744d9  
    121121  {
    122122    poly g = polynomialIdeal->m[i];
    123     pGetExpV(g,expv);
     123    p_GetExpV(g,expv,polynomialRing);
    124124    gfan::ZVector leadexpv = intStar2ZVector(n,expv);
    125125    long d = wDeg(g,polynomialRing,w);
    126126    for (pIter(g); g; pIter(g))
    127127    {
    128       pGetExpV(g,expv); gfan::ZVector tailexpv = intStar2ZVector(n,expv);
     128      p_GetExpV(g,expv,polynomialRing);
     129      gfan::ZVector tailexpv = intStar2ZVector(n,expv);
    129130      if (wDeg(g,polynomialRing,w)==d)
    130131        equations.appendRow(leadexpv-tailexpv);
     
    134135        inequalities.appendRow(leadexpv-tailexpv);
    135136      }
     137    }
     138  }
     139  omFreeSize(expv,(n+1)*sizeof(int));
     140
     141  polyhedralCone = gfan::ZCone(inequalities,equations);
     142  interiorPoint = polyhedralCone.getRelativeInteriorPoint();
     143  assume(checkOrderingAndCone(polynomialRing,polyhedralCone));
     144}
     145
     146groebnerCone::groebnerCone(const ideal I, const ideal inI, const ring r, const tropicalStrategy& currentCase):
     147  polynomialIdeal(id_Copy(I,r)),
     148  polynomialRing(rCopy(r)),
     149  currentStrategy(&currentCase)
     150{
     151  assume(checkPolynomialInput(I,r));
     152  assume(checkPolynomialInput(inI,r));
     153  int n = rVar(r);
     154  gfan::ZMatrix equations = gfan::ZMatrix(0,n);
     155  int* expv = (int*) omAlloc((n+1)*sizeof(int));
     156  for (int i=0; i<idSize(inI); i++)
     157  {
     158    poly g = inI->m[i];
     159    p_GetExpV(g,expv,r);
     160    gfan::ZVector leadexpv = intStar2ZVector(n,expv);
     161    for (pIter(g); g; pIter(g))
     162    {
     163      p_GetExpV(g,expv,r);
     164      gfan::ZVector tailexpv = intStar2ZVector(n,expv);
     165      equations.appendRow(leadexpv-tailexpv);
     166    }
     167  }
     168  gfan::ZMatrix inequalities = gfan::ZMatrix(0,n);
     169  for (int i=0; i<idSize(I); i++)
     170  {
     171    poly g = I->m[i];
     172    p_GetExpV(g,expv,r);
     173    gfan::ZVector leadexpv = intStar2ZVector(n,expv);
     174    for (pIter(g); g; pIter(g))
     175    {
     176      p_GetExpV(g,expv,r);
     177      gfan::ZVector tailexpv = intStar2ZVector(n,expv);
     178      inequalities.appendRow(leadexpv-tailexpv);
    136179    }
    137180  }
  • Singular/dyn_modules/gfanlib/groebnerCone.h

    r3c0aa5 re744d9  
    3232  groebnerCone(const ideal I, const ring r, const tropicalStrategy& currentCase);
    3333  groebnerCone(const ideal I, const ring r, const gfan::ZVector& w, const tropicalStrategy& currentCase);
     34  groebnerCone(const ideal I, const ideal inI, const ring r, const tropicalStrategy& currentCase);
    3435  groebnerCone(const groebnerCone& sigma);
    3536  ~groebnerCone();
  • Singular/dyn_modules/gfanlib/initial.cc

    r3c0aa5 re744d9  
    2323    d += p_GetExp(p,i+1,r)*w[i].toInt();
    2424  }
     25  return d;
     26}
     27
     28/***
     29 * Computes the weighted multidegree of the leading term of p with respect to W.
     30 * The weighted multidegree is a vector whose i-th entry is the weighted degree
     31 * with respect to the i-th row vector of W.
     32 **/
     33gfan::ZVector WDeg(const poly p, const ring r, const gfan::ZMatrix W)
     34{
     35  gfan::ZVector d = gfan::ZVector(W.getHeight());
     36  for (int i=0; i<W.getHeight(); i++)
     37    d[i] = wDeg(p,r,W[i]);
    2538  return d;
    2639}
     
    8194
    8295/***
    83  * Returns the first terms of p of same weighted degree under w,
    84  * this is not necessarily the initial form of p with respect to w!
     96 * Returns the initial form of p with respect to w
    8597 **/
    8698poly initial(const poly p, const ring r, const gfan::ZVector w)
    8799{
    88   int n = r->N;
    89   int* expv = (int*) omAlloc(n*sizeof(int));
    90100  poly q0 = p_Head(p,r);
    91101  poly q1 = q0;
     
    93103  for (poly currentTerm = p->next; currentTerm; pIter(currentTerm))
    94104  {
    95     if (wDeg(currentTerm,r,w)==d)
     105    long e = wDeg(currentTerm,r,w);
     106    if (e>d)
    96107    {
    97       pNext(q1) = p_Head(currentTerm,r);
    98       pIter(q1);
     108      p_Delete(&q0,r);
     109      q0 = p_Head(p,r);
     110      q1 = q0;
     111      d = e;
    99112    }
    100   }
    101   omFreeSize(expv,n*sizeof(int));
     113    else
     114      if (e==d)
     115      {
     116        pNext(q1) = p_Head(currentTerm,r);
     117        pIter(q1);
     118      }
     119  }
    102120  return q0;
    103121}
     
    105123/***
    106124 * Runs the above procedure over all generators of an ideal.
     125 * Returns the initial ideal if and only if the weight is in the maximal Groebner cone
     126 * of the current ordering.
    107127 **/
    108128ideal initial(const ideal I, const ring r, const gfan::ZVector w)
     
    113133  return inI;
    114134}
     135
     136
     137/***
     138 * Returns the initial form of p with respect to W,
     139 * i.e. the sum over all terms of p with highest multidegree with respect to W.
     140 **/
     141poly initial(const poly p, const ring r, const gfan::ZMatrix W)
     142{
     143  int n = rVar(r);
     144  poly q0 = p_Head(p,r);
     145  poly q1 = q0;
     146  gfan::ZVector d = WDeg(p,r,W);
     147  for (poly currentTerm = p->next; currentTerm; pIter(currentTerm))
     148  {
     149    gfan::ZVector e = WDeg(currentTerm,r,W);
     150    if (d<e)
     151    {
     152      p_Delete(&q0,r);
     153      q0 = p_Head(p,r);
     154      q1 = q0;
     155      d = e;
     156    }
     157    else
     158      if (d==e)
     159      {
     160        pNext(q1) = p_Head(currentTerm,r);
     161        pIter(q1);
     162      }
     163  }
     164  return q0;
     165}
     166
     167/***
     168 * Runs the above procedure over all generators of an ideal.
     169 * Returns the initial ideal if and only if the weight is in the maximal Groebner cone
     170 * of the current ordering.
     171 **/
     172ideal initial(const ideal I, const ring r, const gfan::ZMatrix W)
     173{
     174  int k = idSize(I); ideal inI = idInit(k);
     175  for (int i=0; i<k; i++)
     176    inI->m[i] = initial(I->m[i],r,W);
     177  return inI;
     178}
     179
    115180
    116181#ifndef NDEBUG
  • Singular/dyn_modules/gfanlib/initial.h

    r3c0aa5 re744d9  
    1414 **/
    1515long wDeg(const poly p, const ring r, const gfan::ZVector w);
     16
     17/***
     18 * Computes the weighted multidegree of the leading term of p with respect to W.
     19 * The weighted multidegree is a vector whose i-th entry is the weighted degree
     20 * with respect to the i-th row vector of W.
     21 **/
     22gfan::ZVector WDeg(const poly p, const ring r, const gfan::ZMatrix W);
    1623
    1724/***
     
    3239poly initial(const poly p, const ring r, const gfan::ZVector w);
    3340ideal initial(const ideal I, const ring r, const gfan::ZVector w);
    34 
     41poly initial(const poly p, const ring r, const gfan::ZMatrix W);
     42poly initial(const ideal I, const ring r, const gfan::ZMatrix W);
    3543
    3644
  • Singular/dyn_modules/gfanlib/startingCone.cc

    r3c0aa5 re744d9  
    4040 * containing the point.
    4141 **/
    42 std::pair<gfan::ZVector,groebnerCone> tropicalStartingPointViaGroebnerFan(const ideal I, const ring r, const tropicalStrategy& currentStrategy)
     42std::pair<gfan::ZVector,groebnerCone> tropicalStartingDataViaGroebnerFan(const ideal I, const ring r, const tropicalStrategy& currentStrategy)
    4343{
    4444  currentStrategy.reduce(I,r);
     
    8484    ideal I = (ideal) u->Data();
    8585    tropicalStrategy currentStrategy(I,currRing);
    86     std::pair<gfan::ZVector,groebnerCone> startingData = tropicalStartingPointViaGroebnerFan(I,currRing,currentStrategy);
     86    std::pair<gfan::ZVector,groebnerCone> startingData = tropicalStartingDataViaGroebnerFan(I,currRing,currentStrategy);
    8787    gfan::ZVector startingPoint = startingData.first;
    8888    res->rtyp = BIGINTMAT_CMD;
     
    131131
    132132  gfan::ZCone zc = linealitySpaceOfGroebnerFan(inI,s);
    133   gfan::ZVector potentialStartingPoint; groebnerCone ambientMaximalCone;
     133  gfan::ZVector startingPoint; groebnerCone ambientMaximalCone;
    134134  while (zc.dimension()<currentStrategy.getDimensionOfIdeal())
    135135  {
    136     std::pair<gfan::ZVector,groebnerCone> startingData = tropicalStartingPointViaGroebnerFan(inI,s,currentStrategy);
    137     potentialStartingPoint = startingData.first;
     136    std::pair<gfan::ZVector,groebnerCone> startingData = tropicalStartingDataViaGroebnerFan(inI,s,currentStrategy);
     137    startingPoint = startingData.first;
    138138    ambientMaximalCone = groebnerCone(startingData.second);
    139139
     
    142142    s = ambientMaximalCone.getPolynomialRing();
    143143
    144     inI = sloppyInitial(inI,s,potentialStartingPoint);
     144    inI = sloppyInitial(inI,s,startingPoint);
    145145    zc = linealitySpaceOfGroebnerFan(inI,s);
    146146  }
    147147
    148148  ideal J = lift(I,r,inI,s);
     149  groebnerCone tropicalStartingCone(J,inI,s,currentStrategy);
    149150  id_Delete(&inI,s);
    150   groebnerCone tropicalStartingCone(J,s,potentialStartingPoint,currentStrategy);
    151151  id_Delete(&J,s);
    152152
  • Singular/dyn_modules/gfanlib/tropicalCurves.cc

    r3c0aa5 re744d9  
    4444
    4545/***
    46  * Given a weight w and k more weights E[1], ..., E[h] stored as row vectors of a matrix E,
    47  + returns a ring whose ordering is weighted with respect to any
    48  * w+\varepsilon_1*E[1]+...+\varepsilon_k*E[h] for \varepsilon_i sufficiently small.
    49  * In particular, if E[1], ..., E[h] generate a vector space of dimension d,
    50  * this ordering can be used to compute a Groebner cone of dimension d containing w.
    51  **/
    52 static ring genericlyWeightedOrdering(const ring r, const gfan::ZVector w, const gfan::ZMatrix E,
    53                                       const tropicalStrategy& currentStrategy)
    54 {
    55   int n = r->N;
     46 * Given a ring r, weights u, w, and a matrix E, returns a copy of r whose ordering is,
     47 * for any ideal homogeneous with respect to u, weighted with respect to u and
     48 * whose tiebreaker is genericly weighted with respect to v and E in the following sense:
     49 * the ordering "lies" on the affine space A running through v and spanned by the row vectors of E,
     50 * and it lies in a Groebner cone of dimension at least rank(E)=dim(A).
     51 **/
     52static ring genericlyWeightedOrdering(const ring r, const gfan::ZVector u, const gfan::ZVector w,
     53                                      const gfan::ZMatrix W, const tropicalStrategy& currentStrategy)
     54{
     55  int n = rVar(r);
    5656  int h = E.getHeight();
    5757
     
    5959  ring s = rCopy0(r);
    6060  omFree(s->order);
    61   s->order  = (int*) omAlloc0((h+3)*sizeof(int));
     61  s->order  = (int*) omAlloc0((h+4)*sizeof(int));
    6262  omFree(s->block0);
    63   s->block0 = (int*) omAlloc0((h+3)*sizeof(int));
     63  s->block0 = (int*) omAlloc0((h+4)*sizeof(int));
    6464  omFree(s->block1);
    65   s->block1 = (int*) omAlloc0((h+3)*sizeof(int));
     65  s->block1 = (int*) omAlloc0((h+4)*sizeof(int));
    6666  for (int j=0; s->wvhdl[j]; j++) omFree(s->wvhdl[j]);
    6767  omFree(s->wvhdl);
    68   s->wvhdl  = (int**) omAlloc0((h+3)*sizeof(int*));
    69 
    70   /* construct a new ordering and keep an eye out for weight overflows */
     68  s->wvhdl  = (int**) omAlloc0((h+4)*sizeof(int*));
     69
     70  /* construct a new ordering as describe above */
    7171  bool overflow;
    7272  s->order[0] = ringorder_a;
    7373  s->block0[0] = 1;
    7474  s->block1[0] = n;
    75   s->wvhdl[0] = ZVectorToIntStar(w,overflow);
    76   for (int j=1; j<h; j++)
    77   {
    78     s->order[j] = ringorder_a;
    79     s->block0[j] = 1;
    80     s->block1[j] = n;
    81     s->wvhdl[j] = ZVectorToIntStar(currentStrategy.adjustWeightUnderHomogeneity(E[j-1],w),overflow);
    82   }
    83   s->order[h] = ringorder_wp;
    84   s->block0[h] = 1;
    85   s->block1[h] = n;
    86   s->wvhdl[h] = ZVectorToIntStar(currentStrategy.adjustWeightUnderHomogeneity(E[h-1],w),overflow);
    87   s->order[h+1] = ringorder_C;
     75  gfan::ZVector uAdjusted = currentStrategy.adjustWeightForHomogeneity(u);
     76  s->wvhdl[0] = ZVectorToIntStar(uAdjusted,overflow);
     77  s->order[1] = ringorder_a;
     78  s->block0[1] = 1;
     79  s->block1[1] = n;
     80  gfan::ZVector wAdjusted = currentStrategy.adjustWeightUnterHomogeneity(w,uAdjusted);
     81  s->wvhdl[1] = ZVectorToIntStar(wAdjusted,overflow);
     82  for (int j=0; j<h; j++)
     83  {
     84    s->order[j+2] = ringorder_a;
     85    s->block0[j+2] = 1;
     86    s->block1[j+2] = n;
     87    wAdjusted = currentStrategy.adjustWeightUnderHomogeneity(W[j],uAdjusted);
     88    s->wvhdl[j+2] = ZVectorToIntStar(wAdjusted,overflow);
     89  }
     90  s->order[h+2] = ringorder_wp;
     91  s->block0[h+2] = 1;
     92  s->block1[h+2] = n;
     93  wAdjusted = currentStrategy.adjustWeightUnderHomogeneity(W[j],uAdjusted);
     94  s->wvhdl[h+2] = ZVectorToIntStar(wAdjusted,overflow);
     95  s->order[h+3] = ringorder_C;
    8896
    8997  if (overflow)
     
    97105
    98106/***
    99  * Given an ideal I which is homogeneous in the later variables of r,
    100  * whose tropicalization is, modulo its lineality space, a tropical Curve,
    101  * computes the said tropicalization.
    102  * At the end of the computation, I will contain a tropical basis.
    103  * If the dimension of the tropical variety is known beforehand,
    104  * it can be provided in order to speed up the computation.
    105  **/
    106 std::set<gfan::ZCone> tropicalCurve(ideal I, const ring r, const tropicalStrategy currentStrategy)
    107 {
    108   int k = idSize(I);
     107 * Let I be an ideal. Given a weight vector u in the relative interior
     108 * of a one-codimensional cone of the tropical variety of I and
     109 * the initial ideal inI with respect to it, computes the star of the tropical variety in u.
     110 **/
     111std::set<gfan::ZCone> tropicalStar(ideal inI, const ring r, const gfan::ZVector u,
     112                                   const tropicalStrategy currentStrategy)
     113{
     114  int k = idSize(inI);
     115  int d = currentStrategy.getDimensionOfIdeal();
    109116
    110117  /* Compute the common refinement over all tropical varieties
    111118   * of the polynomials in the generating set */
    112   std::set<gfan::ZCone> C = tropicalVariety(I->m[0],r,currentStrategy);
     119  std::set<gfan::ZCone> C = tropicalVariety(inI->m[0],r,currentStrategy);
    113120  for (int i=1; i<k; i++)
    114     C = intersect(C,tropicalVariety(I->m[i],r,currentStrategy),currentStrategy.getDimensionOfIdeal());
     121    C = intersect(C,tropicalVariety(inI->m[i],r,currentStrategy),d);
    115122
    116123  /* Cycle through all maximal cones of the refinement.
     
    124131  {
    125132    gfan::ZVector v = zc->getRelativeInteriorPoint();
    126     gfan::ZMatrix E = zc->generatorsOfSpan();
    127 
    128     ring s = genericlyWeightedOrdering(r,v,E,currentStrategy);
    129     nMapFunc nMap = n_SetMap(r->cf,s->cf);
    130     ideal Is = idInit(k);
     133    gfan::ZMatrix W = zc->generatorsOfSpan();
     134
     135    ring s = genericlyWeightedOrdering(r,v,W,currentStrategy);
     136    nMapFunc identity = n_SetMap(r->cf,s->cf);
     137    ideal inIs = idInit(k);
    131138    for (int j=0; j<k; j++)
    132       Is->m[j] = p_PermPoly(I->m[j],NULL,r,s,nMap,NULL,0);
    133     ideal inIs = initial(Is,s,E[E.getHeight()-1]);
     139      inIs->m[j] = p_PermPoly(inI->m[j],NULL,r,s,identity,NULL,0);
     140
     141    inIs = gfanlib_kStd_wrapper(inIs,s,isHomog);
     142    ideal ininIs = initial(inIs,s,E[E.getHeight()-1]);
    134143
    135144    poly mons = checkForMonomialViaSuddenSaturation(inIs,s);
    136145    if (mons)
    137146    {
    138       poly gs = witness(mons,Is,inIs,s);
    139       C = intersect(C,tropicalVariety(gs,s,currentStrategy),currentStrategy.getDimensionOfIdeal());
     147      poly gs = witness(mons,inIs,ininIs,s);
     148      C = intersect(C,tropicalVariety(gs,s,currentStrategy),d);
    140149      nMapFunc mMap = n_SetMap(s->cf,r->cf);
    141150      poly gr = p_PermPoly(gs,NULL,s,r,mMap,NULL,0);
  • dyn_modules/callgfanlib/tropicalVariety.cc

    r3c0aa5 re744d9  
    44#include <tropicalVarietyOfIdeals.h>
    55#include <libpolys/coeffs/numbers.h>
     6#include <libpolys/misc/options.h>
    67#include <kernel/structs.h>
     8
     9
     10BITSET bitsetSave1, bitsetSave2;
     11
     12/***
     13 * sets option(redSB)
     14 **/
     15static void setOptionRedSB()
     16{
     17  SI_SAVE_OPT(bitsetSave1,bitsetSave2);
     18  si_opt_1|=Sy_bit(OPT_REDSB);
     19}
     20
     21/***
     22 * sets option(noredSB);
     23 **/
     24static void undoSetOptionRedSB()
     25{
     26  SI_RESTORE_OPT(bitsetSave1,bitsetSave2);
     27}
    728
    829BOOLEAN tropicalVariety(leftv res, leftv args)
     
    2546      number p = (number) v->CopyD();
    2647      tropicalStrategy currentStrategy(I,p,currRing);
     48      setOptionRedSB();
    2749      gfan::ZFan* tropI = tropicalVariety(I,currRing,currentStrategy);
     50      undoSetOptionRedSB();
    2851      res->rtyp = fanID;
    2952      res->data = (char*) tropI;
  • gfanlib/gfanlib_zcone.cpp

    r3c0aa5 re744d9  
    742742        f<<*this;
    743743        return f.str();
     744// =======
     745//   std::stringstream s;
     746//   s<<"AMBIENT_DIM"<<std::endl;
     747//   s<<this->ambientDimension()<<std::endl;
     748
     749//   gfan::ZMatrix i=this->getInequalities();
     750//   if (this->areFacetsKnown())
     751//     s<<"FACETS"<<std::endl;
     752//   else
     753//     s<<"INEQUALITIES"<<std::endl;
     754//   s<<i<<std::endl;
     755
     756//   gfan::ZMatrix e=this->getEquations();
     757//   if (this->areImpliedEquationsKnown())
     758//     s<<"LINEAR_SPAN"<<std::endl;
     759//   else
     760//     s<<"EQUATIONS"<<std::endl;
     761//   s<<e<<std::endl;
     762
     763//   gfan::ZMatrix r=this->extremeRays();
     764//   s<<"RAYS"<<std::endl;
     765//   s<<r<<std::endl;
     766
     767//   gfan::ZMatrix l=this->generatorsOfLinealitySpace();
     768//   s<<"LINEALITY_SPACE"<<std::endl;
     769//   s<<l<<std::endl;
     770
     771//   std::cout << s.str();
     772//   return;
     773// >>>>>>> chg: status update 17.07.
    744774}
    745775
Note: See TracChangeset for help on using the changeset viewer.