Changeset 667a9c in git
- Timestamp:
- May 29, 2009, 1:34:22 PM (14 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- c92fb1263e2fdce703509276003f67dd8351d229
- Parents:
- 30bb07aae70a2a23ab764df7a9aa5063f1dd3698
- Location:
- kernel
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/f5data.h
r30bb07 r667a9c 3 3 * Computer Algebra System SINGULAR * 4 4 ****************************************/ 5 /* $Id: f5data.h,v 1.1 0 2009-03-29 17:17:09ederc Exp $ */5 /* $Id: f5data.h,v 1.11 2009-05-29 11:34:22 ederc Exp $ */ 6 6 /* 7 7 * ABSTRACT: labeled polynomial interface 8 8 */ 9 #ifndef F5 DATA_HEADER10 #define F5 DATA_HEADER11 #ifdef HAVE_F5 9 #ifndef F5CDATA_HEADER 10 #define F5CDATA_HEADER 11 #ifdef HAVE_F5C 12 12 /*! 13 13 ========================================================= -
kernel/f5gb.cc
r30bb07 r667a9c 1446 1446 // DEBUGGING STUFF 1447 1447 LNode* temp = gPrev->getFirst(); 1448 // computing new groebner basis gbPrev 1448 1449 1450 ///////////////////////////////////////////////////////////////////////////////// 1451 // // 1452 // one needs to choose one of the following 3 implementations of the algorithm // 1453 // F5,F5R or F5C // 1454 // // 1455 ///////////////////////////////////////////////////////////////////////////////// 1456 1457 1458 // 1459 // remove this comment to get "F5" 1460 // 1461 /* 1449 1462 if(gPrev->getLength() > gbLength) { 1450 1463 if(i < IDELEMS(id)) { … … 1458 1471 gbAdd->m[j] = temp->getPoly(); 1459 1472 } 1460 //if(1 == temp->getDel()) {1461 // pWrite(temp->getPoly());1462 //}1463 1473 } 1464 1474 gbPrev = idAdd(gbPrev,gbAdd); 1465 //idShow(gbPrev);1466 1475 } 1467 1476 else { … … 1474 1483 gbPrev = idAdd(gbPrev,gbAdd); 1475 1484 } 1485 } 1486 gbLength = gPrev->getLength(); 1487 */ 1488 1489 1490 // 1491 // remove this comment to get "F5R" 1492 // 1493 /* 1494 if(gPrev->getLength() > gbLength) { 1495 if(i < IDELEMS(id)) { 1496 ideal gbAdd = idInit(gPrev->getLength()-gbLength,1); 1497 LNode* temp = gPrevTag; 1498 int counter = 0; 1499 for(j=0;j<=gPrev->getLength()-gbLength-1;j++) { 1500 temp = temp->getNext(); 1501 if(0 == temp->getDel()) { 1502 counter++; 1503 gbAdd->m[j] = temp->getPoly(); 1504 } 1505 } 1506 gbPrev = idAdd(gbPrev,gbAdd); 1507 } 1508 else { 1509 ideal gbAdd = idInit(gPrev->getLength()-gbLength,1); 1510 LNode* temp = gPrevTag; 1511 for(j=0;j<=gPrev->getLength()-gbLength-1;j++) { 1512 temp = temp->getNext(); 1513 gbAdd->m[j] = temp->getPoly(); 1514 } 1515 gbPrev = idAdd(gbPrev,gbAdd); 1516 } 1476 1517 // interreduction stuff 1518 // comment this out if you want F5 instead of F5R 1477 1519 if(i<IDELEMS(id)) { 1478 //int timer2 = initTimer();1479 //startTimer();1480 //idShow(gbPrev);1481 1520 ideal tempId = kInterRed(gbPrev); 1482 //idShow(kInterRed(gbPrev));1483 //idShow(tempId);1484 1521 gbPrev = tempId; 1485 //timer2 = getTimer(); 1486 //Print("Timer INTERREDUCTION: %d\n",timer2); 1487 //idShow(gbPrev); 1488 //qsortDegree(&gbPrev->m[0],&gbPrev->m[IDELEMS(gbPrev)-1]); 1522 } 1523 } 1524 gbLength = gPrev->getLength(); 1525 */ 1526 1527 1528 // 1529 // Remove this comment to get "F5C" 1530 // computing new groebner basis gbPrev 1531 // 1532 1533 if(gPrev->getLength() > gbLength) { 1534 if(i < IDELEMS(id)) { 1535 ideal gbAdd = idInit(gPrev->getLength()-gbLength,1); 1536 LNode* temp = gPrevTag; 1537 for(j=0;j<=gPrev->getLength()-gbLength-1;j++) { 1538 temp = temp->getNext(); 1539 gbAdd->m[j] = temp->getPoly(); 1540 } 1541 gbPrev = idAdd(gbPrev,gbAdd); 1542 } 1543 else { 1544 ideal gbAdd = idInit(gPrev->getLength()-gbLength,1); 1545 LNode* temp = gPrevTag; 1546 for(j=0;j<=gPrev->getLength()-gbLength-1;j++) { 1547 temp = temp->getNext(); 1548 gbAdd->m[j] = temp->getPoly(); 1549 } 1550 gbPrev = idAdd(gbPrev,gbAdd); 1551 } 1552 if(i<IDELEMS(id)) { 1553 ideal tempId = kInterRed(gbPrev); 1554 Print("HERE\n"); 1555 gbPrev = tempId; 1489 1556 delete gPrev; 1490 //sleep(5);1491 //Print("RULES FIRST NOW1: %p\n",rules->getFirst());1492 //Print("HIER\n");1493 1557 delete rules; 1494 //delete rTag;1495 //Print("HIER AUCH\n");1496 //Print("%p\n",rules->getFirst());1497 1558 gPrev = new LList(pOne,1,gbPrev->m[0]); 1498 1559 gPrev->insert(pOne,1,gbPrev->m[1]); 1499 //poly tempPoly = pInit();1500 //pLcm(pHead(gbPrev->m[0]),pHead(gbPrev->m[1]),tempPoly);1501 //tempPoly = pDivide(tempPoly,pOne());1502 //pSetCoeff(tempPoly,nOne);1503 1560 rules = new RList(); 1504 1561 rTag = new RTagList(rules->getFirst()); 1505 1506 //Print("%p\n",rules->getFirst());1507 //pWrite(tempPoly);1508 //rules->insert(2,tempPoly);1509 //rTag->insert(rules->getFirst());1510 //Print("%p\n",rules->getFirst());1511 //Print("%p\n",rTag->getFirst());1512 //Print("%p\n",rules->getFirst());1513 //Print("%p\n",rules->getFirst()->getNext()->getNext());1514 //Print("HIERLALA\n");1515 //pWrite(rules->getFirst()->getRuleTerm());1516 // Print("RULES FIRST NOW2: %p\n",rules->getFirst());1517 1562 for(k=2; k<IDELEMS(gbPrev); k++) { 1518 1563 gPrev->insert(pOne,k+1,gbPrev->m[k]); 1519 1564 for(l=0; l<k; l++) { 1520 //pWrite(gbPrev->m[k]);1521 //pWrite(gbPrev->m[l]);1522 //poly tempPoly2 = pOne();1523 //pLcm(pHead(gbPrev->m[k]),pHead(gbPrev->m[l]),tempPoly2);1524 //tempPoly2 = pDivide(tempPoly2,pOne());1525 //pSetCoeff(tempPoly2,nOne);1526 //pWrite(tempPoly2);1527 //rules->insert(k+1,tempPoly2);1528 1565 } 1529 1566 rTag->insert(rules->getFirst()); … … 1531 1568 } 1532 1569 gbLength = gPrev->getLength(); 1533 /* 1534 if(gPrev->getLength() == 4) { 1535 poly temp1 = pInit(); 1536 poly temp2 = pInit(); 1537 poly u = pInit(); 1538 temp1 = pCopy(gbPrev->m[3]); 1539 temp2 = pCopy(gbPrev->m[2]); 1540 u = pCopy(gbPrev->m[0]); 1541 pIter(u); 1542 pIter(u); 1543 pIter(u); 1544 pIter(u); 1545 //pWrite(u); 1546 number n = nInit(3); 1547 pSetCoeff(u,n); 1548 poly tempNew = pAdd(temp1,pMult(u,temp2)); 1549 gbPrev->m[3] = tempNew; 1550 LNode* tempNode4 = gPrev->getFirst(); 1551 tempNode4 = tempNode4->getNext()->getNext()->getNext(); 1552 tempNode4->setPoly(tempNew); 1553 //Print("HIER\n"); 1554 } 1555 */ 1556 //gPrev->print(); 1557 //int anzahl = 1; 1558 //while(NULL != temp) { 1559 // Print("%d. Element: ",anzahl); 1560 // pWrite(temp->getPoly()); 1561 // Print("\n"); 1562 // temp = temp->getNext(); 1563 // anzahl++; 1564 //} 1565 //sleep(5); 1566 //Print("GROEBNER BASIS:\n====================================================\n"); 1567 //idShow(gbPrev); 1568 //Print("===================================================\n"); 1569 //Print("JA\n"); 1570 //Print("LENGTH OF GPREV: %d\n",gPrev->getLength()); 1571 //idShow(gbPrev); 1572 } 1573 //idShow(gbPrev); 1570 } 1571 1572 1573 1574 1574 } 1575 1575 //Print("\n\nADDING TIME IN REDUCTION: %d\n\n",reductionTime); … … 1577 1577 timer = getTimer(); 1578 1578 Print("Highest Degree during computations: %d\n",highestDegree); 1579 Print("Time for computations: %d/10000 seconds\n",timer); 1579 Print("Time for computations: %d/1000 seconds\n",timer); 1580 Print("Number of elements in gb: %d\n",IDELEMS(gbPrev)); 1580 1581 //LNode* temp = gPrev->getFirst(); 1581 1582 //while(NULL != temp) { -
kernel/f5gb.h
r30bb07 r667a9c 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: f5gb.h,v 1. 39 2009-05-13 16:55:03ederc Exp $ */4 /* $Id: f5gb.h,v 1.40 2009-05-29 11:34:22 ederc Exp $ */ 5 5 /* 6 6 * ABSTRACT: f5gb interface … … 36 36 bool compareMonomials(int* m1, int** m2, int numberOfRules); 37 37 38 /*39 ==============================================40 generating the list lp of ideal generators and41 test if 1 is in lp(return 1) or not(return 0)42 ==============================================43 */44 void generate_input_list(LPoly* lp, ideal id, poly one);45 38 46 39 /* -
kernel/f5lists.cc
r30bb07 r667a9c 1 1 #include "mod2.h" 2 2 3 #ifdef HAVE_F5 3 #ifdef HAVE_F5C 4 4 #include "kutil.h" 5 5 #include "structs.h" -
kernel/f5lists.h
r30bb07 r667a9c 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: f5lists.h,v 1.2 0 2009-05-14 08:47:01ederc Exp $ */4 /* $Id: f5lists.h,v 1.21 2009-05-29 11:34:22 ederc Exp $ */ 5 5 /* 6 6 * ABSTRACT: list interface 7 7 */ 8 8 #include "f5data.h" 9 #ifndef F5 LISTS_HEADER10 #define F5 LISTS_HEADER11 12 #ifdef HAVE_F5 9 #ifndef F5CLISTS_HEADER 10 #define F5CLISTS_HEADER 11 12 #ifdef HAVE_F5C 13 13 /* 14 14 ============================ … … 53 53 LNode* insert(LPoly* lp); 54 54 LNode* insert(poly t, int i, poly p, Rule* r); 55 LNode* insertByDeg(LPoly* lp); 55 56 // insert new elements to the list in front from the labeled / classical polynomial view 56 57 // needed for sPolyList … … 110 111 void insert(LPoly* lp); 111 112 void insert(poly t,int i, poly p, Rule* r = NULL); 112 // insertion in front of the list 113 void insertByDeg(LPoly* lp); 114 // insertion in front of the list 113 115 // needed for sPolyList 114 116 void insertSP(LPoly* lp);
Note: See TracChangeset
for help on using the changeset viewer.