Changeset 670e639 in git
- Timestamp:
- Feb 1, 2015, 7:02:48 PM (9 years ago)
- Branches:
- (u'spielwiese', '8e0ad00ce244dfd0756200662572aef8402f13d5')
- Children:
- 44d34b600fd8727833693222ffbd36ce803e3e60
- Parents:
- 5510099a60c7cd4cb8ef47b8e583ed11e4b4ffe3
- git-author:
- Yue Ren <ren@mathematik.uni-kl.de>2015-02-01 19:02:48+01:00
- git-committer:
- Yue Ren <ren@mathematik.uni-kl.de>2015-02-06 13:47:06+01:00
- Location:
- Singular/dyn_modules/gfanlib
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/dyn_modules/gfanlib/groebnerCone.h
r551009 r670e639 58 58 if (polynomialRing) rDelete(polynomialRing); 59 59 polynomialIdeal = NULL; 60 polynomialRing = NULL; 60 61 } 61 62 -
Singular/dyn_modules/gfanlib/startingCone.cc
r551009 r670e639 19 19 * is monomial free. 20 20 **/ 21 static bool checkContainmentInTropicalVariety(const groebnerCone sigma)22 {23 ideal I = sigma.getPolynomialIdeal();24 ring r = sigma.getPolynomialRing();25 const tropicalStrategy* currentStrategy = sigma.getTropicalStrategy();26 27 gfan::ZCone zc = sigma.getPolyhedralCone();28 gfan::ZMatrix zm = zc.extremeRays();29 for (int i=0; i<zm.getHeight(); i++)30 {31 gfan::ZVector w = zm[i];32 if (currentStrategy->isValuationNonTrivial() && w[0].sign()==0)33 continue;34 poly s = currentStrategy->checkInitialIdealForMonomial(I,r,w);35 if (s)36 {37 p_Delete(&s,r);38 return false;39 }40 }41 42 zm = zc.generatorsOfLinealitySpace();43 for (int i=0; i<zm.getHeight(); i++)44 {45 gfan::ZVector w = zm[i];46 if (currentStrategy->isValuationNonTrivial() && w[0].sign()==0)47 continue;48 poly s = currentStrategy->checkInitialIdealForMonomial(I,r,w);49 if (s)50 {51 p_Delete(&s,r);52 return false;53 }54 }55 56 return true;57 }58 59 60 static bool checkOneCodimensionalLinealitySpace(const groebnerCone sigma)61 {62 gfan::ZCone zc = sigma.getPolyhedralCone();63 int linDim = zc.dimensionOfLinealitySpace();64 int dim = zc.dimension();65 return (linDim+1)==dim;66 }21 // static bool checkContainmentInTropicalVariety(const groebnerCone sigma) 22 // { 23 // ideal I = sigma.getPolynomialIdeal(); 24 // ring r = sigma.getPolynomialRing(); 25 // const tropicalStrategy* currentStrategy = sigma.getTropicalStrategy(); 26 27 // gfan::ZCone zc = sigma.getPolyhedralCone(); 28 // gfan::ZMatrix zm = zc.extremeRays(); 29 // for (int i=0; i<zm.getHeight(); i++) 30 // { 31 // gfan::ZVector w = zm[i]; 32 // if (currentStrategy->isValuationNonTrivial() && w[0].sign()==0) 33 // continue; 34 // poly s = currentStrategy->checkInitialIdealForMonomial(I,r,w); 35 // if (s) 36 // { 37 // p_Delete(&s,r); 38 // return false; 39 // } 40 // } 41 42 // zm = zc.generatorsOfLinealitySpace(); 43 // for (int i=0; i<zm.getHeight(); i++) 44 // { 45 // gfan::ZVector w = zm[i]; 46 // if (currentStrategy->isValuationNonTrivial() && w[0].sign()==0) 47 // continue; 48 // poly s = currentStrategy->checkInitialIdealForMonomial(I,r,w); 49 // if (s) 50 // { 51 // p_Delete(&s,r); 52 // return false; 53 // } 54 // } 55 56 // return true; 57 // } 58 59 60 // static bool checkOneCodimensionalLinealitySpace(const groebnerCone sigma) 61 // { 62 // gfan::ZCone zc = sigma.getPolyhedralCone(); 63 // int linDim = zc.dimensionOfLinealitySpace(); 64 // int dim = zc.dimension(); 65 // return (linDim+1)==dim; 66 // } 67 67 68 68 … … 537 537 id_Delete(&inI,r); 538 538 539 assume(checkContainmentInTropicalVariety(startingCone));539 // assume(checkContainmentInTropicalVariety(startingCone)); 540 540 return startingCone; 541 541 } -
Singular/dyn_modules/gfanlib/tropicalTraversal.cc
r551009 r670e639 48 48 workingList.insert(startingCone); 49 49 const tropicalStrategy* currentStrategy=startingCone.getTropicalStrategy(); 50 std::cout << "starting traversal" << std::endl; 50 51 while(!workingList.empty()) 51 52 { 52 // std::cout << "starting traversal" << std::endl;53 53 /** 54 54 * Pick an element the working list and compute interior points on its facets 55 55 */ 56 std::cout << "picking cone and computing interior facet points..." << std::endl; 56 57 groebnerCone sigma=*(workingList.begin()); 57 58 gfan::ZMatrix interiorPoints = interiorPointsOfFacets(sigma.getPolyhedralCone()); … … 66 67 { 67 68 ideal inI = initial(sigma.getPolynomialIdeal(),sigma.getPolynomialRing(),interiorPoint); 69 std::cout << "picking interiorPoint and computing rays of tropical star..." << std::endl; 68 70 gfan::ZMatrix normalVectors = raysOfTropicalStar(inI, 69 71 sigma.getPolynomialRing(), … … 72 74 id_Delete(&inI,sigma.getPolynomialRing()); 73 75 76 std::cout << "checking for th neccessity to flip..." << std::endl; 74 77 std::vector<bool> needToFlip = checkNecessaryFlips(tropicalVariety,workingList,interiorPoint,normalVectors); 75 78 for (int j=0; j<normalVectors.getHeight(); j++) … … 77 80 if (needToFlip[j]) 78 81 { 82 std::cout << "flipping cone..." << std::endl; 79 83 groebnerCone neighbour = sigma.flipCone(interiorPoint,normalVectors[j]); 80 84 workingList.insert(neighbour); … … 87 91 workingList.erase(sigma); 88 92 tropicalVariety.insert(sigma); 89 //std::cout << "tropicalVariety.size():" << tropicalVariety.size() << std::endl;90 //std::cout << "workingList.size():" << workingList.size() << std::endl;93 std::cout << "tropicalVariety.size():" << tropicalVariety.size() << std::endl; 94 std::cout << "workingList.size():" << workingList.size() << std::endl; 91 95 } 92 96 return tropicalVariety; … … 98 102 groebnerCones workingList; 99 103 workingList.insert(startingCone); 104 std::cout << "starting traversal" << std::endl; 100 105 while(!workingList.empty()) 101 106 { 102 // std::cout << "starting traversal" << std::endl;103 107 const groebnerCone sigma=*(workingList.begin()); 104 108 const groebnerCones neighbours = sigma.tropicalNeighbours();
Note: See TracChangeset
for help on using the changeset viewer.