Changeset c880d63 in git
- Timestamp:
- Nov 16, 2000, 5:56:20 PM (24 years ago)
- Branches:
- (u'fieker-DuVal', '117eb8c30fc9e991c4decca4832b1d19036c4c65')(u'spielwiese', 'b4f17ed1d25f93d46dbe29e4b499baecc2fd51bb')
- Children:
- 62fd53cec458e099a9121f16ac8739afbec4235d
- Parents:
- 133c5d3687bc9924340e9a7cbd2da5491585849a
- Location:
- Singular
- Files:
-
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/longalg.cc
r133c5d rc880d63 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: longalg.cc,v 1.4 5 2000-11-14 16:04:58 obachmanExp $ */4 /* $Id: longalg.cc,v 1.46 2000-11-16 16:56:20 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: algebraic numbers … … 136 136 if (complete) 137 137 { 138 npSetChar(-i );138 npSetChar(-i, currRing->algring); // to be changes HS 139 139 nacInit = npInit; 140 140 nacInt = npInt; -
Singular/modulop.cc
r133c5d rc880d63 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: modulop.cc,v 1.1 7 2000-09-18 09:19:18 obachmanExp $ */4 /* $Id: modulop.cc,v 1.18 2000-11-16 16:54:25 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: numbers modulo p (<=32003) … … 47 47 number npInit (int i) 48 48 { 49 while (i < 0) i += npPrimeM;50 while ( i >= npPrimeM) i -= npPrimeM;49 while (i < 0) i += npPrimeM; 50 while ((i>1) && (i >= npPrimeM)) i -= npPrimeM; 51 51 return (number)i; 52 52 } … … 201 201 */ 202 202 203 void npSetChar(int c )203 void npSetChar(int c, ring r) 204 204 { 205 205 int i, w; -
Singular/modulop.h
r133c5d rc880d63 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: modulop.h,v 1.1 0 2000-03-02 18:44:39Singular Exp $ */6 /* $Id: modulop.h,v 1.11 2000-11-16 16:52:37 Singular Exp $ */ 7 7 /* 8 8 * ABSTRACT: numbers modulo p (<=32003) … … 34 34 BOOLEAN npDBTest (number a, char *f, int l); 35 35 #endif 36 void npSetChar(int c); 36 void npSetChar(int c, ring r); 37 void npInitChar(int c, ring r); 38 37 39 //int npGetChar(); 38 40 -
Singular/numbers.cc
r133c5d rc880d63 2 2 * Computer Algebra System SINGULAR * 3 3 *****************************************/ 4 /* $Id: numbers.cc,v 1.2 2 1999-11-15 17:20:36 obachmanExp $ */4 /* $Id: numbers.cc,v 1.23 2000-11-16 16:52:02 Singular Exp $ */ 5 5 6 6 /* … … 63 63 int nChar; 64 64 65 66 n_Procs_s *cf_root=NULL; 67 65 68 void nDummy1(number* d) { *d=NULL; } 66 69 … … 110 113 nName = ndName; 111 114 } 112 //Print("n:c=%d compl=%d param=%d\n",c,complete,r->parameter);113 //if ((c == 1) || (c< (-1)))114 115 if (rField_is_Extension(r)) 115 116 { … … 213 214 if (complete) 214 215 { 215 npSetChar(c );216 npSetChar(c, r); 216 217 test &= ~Sy_bit(OPT_INTSTRATEGY); /*26*/ 217 218 nNew = nDummy1; … … 436 437 } 437 438 439 /*2 440 * init operations for ring r 441 */ 442 void nInitChar(ring r) 443 { 444 int c=rInternalChar(r); 445 n_coeffType t=rFieldType(r); 446 447 if (rField_is_Extension(r)) 448 { 449 if (r->algring==NULL) 450 { 451 r->algring=(ring) omAlloc0Bin(sip_sring_bin); 452 r->algring->ch= -c; 453 r->algring->N=r->P; 454 nInitChar(r->algring); 455 } 456 } 457 458 n_Procs_s *n=cf_root; 459 while((n!=NULL) 460 && (n->nChar!=c) 461 && (n->type!=t)) 462 n=n->next; 463 if (n==NULL) 464 { 465 n=(n_Procs_s*)omAlloc0(sizeof(n_Procs_s)); 466 n->next=cf_root; 467 n->ref=1; 468 n->nChar=c; 469 n->type=t; 470 cf_root=n; 471 } 472 else 473 { 474 n->ref++; 475 r->cf=n; 476 return; 477 } 478 r->cf=n; 479 r->cf->nChar = c; 480 r->cf->nPar = ndPar; 481 r->cf->nParDeg=ndParDeg; 482 r->cf->nSize = ndSize; 483 r->cf->nGetDenom= ndGetDenom; 484 r->cf->nName = ndName; 485 if (rField_is_Extension(r)) 486 { 487 //naSetChar(c,TRUE,r->parameter,rPar(r)); 488 #ifdef LDEBUG 489 r->cf->nDBDelete = naDBDelete; 490 #else 491 r->cf->nDelete = naDelete; 492 #endif 493 r->cf-> nNew = naNew; 494 r->cf-> nNormalize = naNormalize; 495 r->cf->nInit = naInit; 496 r->cf->nPar = naPar; 497 r->cf->nParDeg = naParDeg; 498 r->cf->nInt = naInt; 499 r->cf->nAdd = naAdd; 500 r->cf->nSub = naSub; 501 r->cf->nMult = naMult; 502 r->cf->nDiv = naDiv; 503 r->cf->nExactDiv = naDiv; 504 r->cf->nIntDiv = naIntDiv; 505 r->cf->nIntMod = ndIntMod; /* dummy !! */ 506 r->cf->nNeg = naNeg; 507 r->cf->nInvers = naInvers; 508 r->cf->nCopy = naCopy; 509 r->cf->nGreater = naGreater; 510 r->cf->nEqual = naEqual; 511 r->cf->nIsZero = naIsZero; 512 r->cf->nIsOne = naIsOne; 513 r->cf->nIsMOne = naIsMOne; 514 r->cf->nGreaterZero= naGreaterZero; 515 r->cf->nWrite = naWrite; 516 r->cf->nRead = naRead; 517 r->cf->nPower = naPower; 518 r->cf->nGcd = naGcd; 519 r->cf->nLcm = naLcm; 520 r->cf->nSetMap = naSetMap; 521 r->cf->nName = naName; 522 r->cf->nSize = naSize; 523 r->cf->nGetDenom = naGetDenom; 524 #ifdef LDEBUG 525 r->cf->nDBTest = naDBTest; 526 #endif 527 } 528 else if (rField_is_Q(r)) 529 { 530 #ifdef LDEBUG 531 r->cf->nDBDelete= nlDBDelete; 532 #else 533 r->cf->nDelete= nlDelete; 534 #endif 535 r->cf->nNew = nlNew; 536 r->cf->nNormalize=nlNormalize; 537 r->cf->nInit = nlInit; 538 r->cf->nInt = nlInt; 539 r->cf->nAdd = nlAdd; 540 r->cf->nSub = nlSub; 541 r->cf->nMult = nlMult; 542 r->cf->nDiv = nlDiv; 543 r->cf->nExactDiv= nlExactDiv; 544 r->cf->nIntDiv= nlIntDiv; 545 r->cf->nIntMod= nlIntMod; 546 r->cf->nNeg = nlNeg; 547 r->cf->nInvers= nlInvers; 548 r->cf->nCopy = nlCopy; 549 r->cf->nGreater = nlGreater; 550 r->cf->nEqual = nlEqual; 551 r->cf->nIsZero = nlIsZero; 552 r->cf->nIsOne = nlIsOne; 553 r->cf->nIsMOne = nlIsMOne; 554 r->cf->nGreaterZero = nlGreaterZero; 555 r->cf->nWrite = nlWrite; 556 r->cf->nRead = nlRead; 557 r->cf->nPower = nlPower; 558 r->cf->nGcd = nlGcd; 559 r->cf->nLcm = nlLcm; 560 r->cf->nSetMap = nlSetMap; 561 r->cf->nSize = nlSize; 562 r->cf->nGetDenom = nlGetDenom; 563 #ifdef LDEBUG 564 r->cf->nDBTest=nlDBTest; 565 #endif 566 } 567 else if (rField_is_Zp(r)) 568 /*----------------------char. p----------------*/ 569 { 570 #ifdef LDEBUG 571 r->cf->nDBDelete= nDBDummy1; 572 #else 573 r->cf->nDelete= nDummy1; 574 #endif 575 npInitChar(c,r); 576 r->cf->nNew = nDummy1; 577 r->cf->nNormalize=nDummy2; 578 r->cf->nInit = npInit; 579 r->cf->nInt = npInt; 580 r->cf->nAdd = npAdd; 581 r->cf->nSub = npSub; 582 r->cf->nMult = npMult; 583 r->cf->nDiv = npDiv; 584 r->cf->nExactDiv= npDiv; 585 r->cf->nIntDiv= npDiv; 586 r->cf->nIntMod= ndIntMod; /* dummy !! */ 587 r->cf->nNeg = npNeg; 588 r->cf->nInvers= npInvers; 589 r->cf->nCopy = ndCopy; 590 r->cf->nGreater = npGreater; 591 r->cf->nEqual = npEqual; 592 r->cf->nIsZero = npIsZero; 593 r->cf->nIsOne = npIsOne; 594 r->cf->nIsMOne = npIsMOne; 595 r->cf->nGreaterZero = npGreaterZero; 596 r->cf->nWrite = npWrite; 597 r->cf->nRead = npRead; 598 r->cf->nPower = npPower; 599 r->cf->nGcd = ndGcd; 600 r->cf->nLcm = ndGcd; /* tricky, isn't it ?*/ 601 r->cf->nSetMap = npSetMap; 602 /* nName= ndName; */ 603 /*nSize = ndSize;*/ 604 #ifdef LDEBUG 605 r->cf->nDBTest=npDBTest; 606 #endif 607 } 608 /* -------------- GF(p^m) -----------------------*/ 609 else if (rField_is_GF(r)) 610 { 611 #ifdef LDEBUG 612 r->cf->nDBDelete= nDBDummy1; 613 #else 614 r->cf->nDelete= nDummy1; 615 #endif 616 //nfSetChar(c,r->parameter); 617 r->cf->nNew = nDummy1; 618 r->cf->nNormalize=nDummy2; 619 r->cf->nInit = nfInit; 620 r->cf->nPar = nfPar; 621 r->cf->nParDeg= nfParDeg; 622 r->cf->nInt = nfInt; 623 r->cf->nAdd = nfAdd; 624 r->cf->nSub = nfSub; 625 r->cf->nMult = nfMult; 626 r->cf->nDiv = nfDiv; 627 r->cf->nExactDiv= nfDiv; 628 r->cf->nIntDiv= nfDiv; 629 r->cf->nIntMod= ndIntMod; /* dummy !! */ 630 r->cf->nNeg = nfNeg; 631 r->cf->nInvers= nfInvers; 632 r->cf->nCopy = ndCopy; 633 r->cf->nGreater = nfGreater; 634 r->cf->nEqual = nfEqual; 635 r->cf->nIsZero = nfIsZero; 636 r->cf->nIsOne = nfIsOne; 637 r->cf->nIsMOne = nfIsMOne; 638 r->cf->nGreaterZero = nfGreaterZero; 639 r->cf->nWrite = nfWrite; 640 r->cf->nRead = nfRead; 641 r->cf->nPower = nfPower; 642 r->cf->nGcd = ndGcd; 643 r->cf->nLcm = ndGcd; /* tricky, isn't it ?*/ 644 r->cf->nSetMap = nfSetMap; 645 r->cf->nName= nfName; 646 /*nSize = ndSize;*/ 647 #ifdef LDEBUG 648 r->cf->nDBTest=nfDBTest; 649 #endif 650 } 651 /* -------------- R -----------------------*/ 652 //if (c==(-1)) 653 else if (rField_is_R(r)) 654 { 655 #ifdef LDEBUG 656 r->cf->nDBDelete= nDBDummy1; 657 #else 658 r->cf->nDelete= nDummy1; 659 #endif 660 r->cf->nNew=nDummy1; 661 r->cf->nNormalize=nDummy2; 662 r->cf->nInit = nrInit; 663 r->cf->nInt = nrInt; 664 r->cf->nAdd = nrAdd; 665 r->cf->nSub = nrSub; 666 r->cf->nMult = nrMult; 667 r->cf->nDiv = nrDiv; 668 r->cf->nExactDiv= nrDiv; 669 r->cf->nIntDiv= nrDiv; 670 r->cf->nIntMod= ndIntMod; /* dummy !! */ 671 r->cf->nNeg = nrNeg; 672 r->cf->nInvers= nrInvers; 673 r->cf->nCopy = ndCopy; 674 r->cf->nGreater = nrGreater; 675 r->cf->nEqual = nrEqual; 676 r->cf->nIsZero = nrIsZero; 677 r->cf->nIsOne = nrIsOne; 678 r->cf->nIsMOne = nrIsMOne; 679 r->cf->nGreaterZero = nrGreaterZero; 680 r->cf->nWrite = nrWrite; 681 r->cf->nRead = nrRead; 682 r->cf->nPower = nrPower; 683 r->cf->nGcd = ndGcd; 684 r->cf->nLcm = ndGcd; /* tricky, isn't it ?*/ 685 r->cf->nSetMap=nrSetMap; 686 /* nName= ndName; */ 687 /*nSize = ndSize;*/ 688 #ifdef LDEBUG 689 r->cf->nDBTest=nrDBTest; 690 #endif 691 } 692 /* -------------- long R -----------------------*/ 693 else if (rField_is_long_R(r)) 694 { 695 //setGMPFloatDigits(r->ch_flags); 696 #ifdef LDEBUG 697 r->cf->nDBDelete= ngfDBDelete; 698 #else 699 r->cf->nDelete= ngfDelete; 700 #endif 701 r->cf->nNew=ngfNew; 702 r->cf->nNormalize=nDummy2; 703 r->cf->nInit = ngfInit; 704 r->cf->nInt = ngfInt; 705 r->cf->nAdd = ngfAdd; 706 r->cf->nSub = ngfSub; 707 r->cf->nMult = ngfMult; 708 r->cf->nDiv = ngfDiv; 709 r->cf->nExactDiv= ngfDiv; 710 r->cf->nIntDiv= ngfDiv; 711 r->cf->nIntMod= ndIntMod; /* dummy !! */ 712 r->cf->nNeg = ngfNeg; 713 r->cf->nInvers= ngfInvers; 714 r->cf->nCopy = ngfCopy; 715 r->cf->nGreater = ngfGreater; 716 r->cf->nEqual = ngfEqual; 717 r->cf->nIsZero = ngfIsZero; 718 r->cf->nIsOne = ngfIsOne; 719 r->cf->nIsMOne = ngfIsMOne; 720 r->cf->nGreaterZero = ngfGreaterZero; 721 r->cf->nWrite = ngfWrite; 722 r->cf->nRead = ngfRead; 723 r->cf->nPower = ngfPower; 724 r->cf->nGcd = ndGcd; 725 r->cf->nLcm = ndGcd; /* tricky, isn't it ?*/ 726 r->cf->nSetMap=ngfSetMap; 727 r->cf->nName= ndName; 728 r->cf->nSize = ndSize; 729 #ifdef LDEBUG 730 r->cf->nDBTest=ngfDBTest; 731 #endif 732 } 733 /* -------------- long C -----------------------*/ 734 else if (rField_is_long_C(r)) 735 { 736 //setGMPFloatDigits(r->ch_flags); 737 #ifdef LDEBUG 738 r->cf->nDBDelete= ngcDBDelete; 739 #else 740 r->cf->nDelete= ngcDelete; 741 #endif 742 r->cf->nNew=ngcNew; 743 r->cf->nNormalize=nDummy2; 744 r->cf->nInit = ngcInit; 745 r->cf->nInt = ngcInt; 746 r->cf->nAdd = ngcAdd; 747 r->cf->nSub = ngcSub; 748 r->cf->nMult = ngcMult; 749 r->cf->nDiv = ngcDiv; 750 r->cf->nExactDiv= ngcDiv; 751 r->cf->nIntDiv= ngcDiv; 752 r->cf->nIntMod= ndIntMod; /* dummy !! */ 753 r->cf->nNeg = ngcNeg; 754 r->cf->nInvers= ngcInvers; 755 r->cf->nCopy = ngcCopy; 756 r->cf->nGreater = ngcGreater; 757 r->cf->nEqual = ngcEqual; 758 r->cf->nIsZero = ngcIsZero; 759 r->cf->nIsOne = ngcIsOne; 760 r->cf->nIsMOne = ngcIsMOne; 761 r->cf->nGreaterZero = ngcGreaterZero; 762 r->cf->nWrite = ngcWrite; 763 r->cf->nRead = ngcRead; 764 r->cf->nPower = ngcPower; 765 r->cf->nGcd = ndGcd; 766 r->cf->nLcm = ndGcd; /* tricky, isn't it ?*/ 767 r->cf->nSetMap=ngcSetMap; 768 r->cf->nPar=ngcPar; 769 /*nSize = ndSize;*/ 770 #ifdef LDEBUG 771 r->cf->nDBTest=ngcDBTest; 772 #endif 773 } 774 #ifdef TEST 775 else 776 { 777 WerrorS("unknown field"); 778 } 779 #endif 780 if (!errorreported) r->cf->nNULL=r->cf->nInit(0); 781 } 782 783 void nKillChar(ring r) 784 { 785 if ((r!=NULL) && (r->cf!=NULL)) 786 { 787 r->cf->ref--; 788 if (r->cf->ref<=0) 789 { 790 n_Procs_s tmp; 791 n_Procs_s* n=&tmp; 792 tmp.next=cf_root; 793 while((n->next!=NULL) && (n->next!=r->cf)) n=n->next; 794 if (n->next==r->cf) 795 { 796 n->next=n->next->next; 797 cf_root=tmp.next; 798 r->cf->nDelete(&(r->cf->nNULL)); 799 switch(r->cf->type) 800 { 801 case n_Zp: 802 omFreeSize( (ADDRESS)r->cf->npExpTable, 803 r->cf->npPrimeM*sizeof(CARDINAL) ); 804 omFreeSize( (ADDRESS)r->cf->npLogTable, 805 r->cf->npPrimeM*sizeof(CARDINAL) ); 806 break; 807 808 default: 809 break; 810 } 811 omFreeSize((ADDRESS)r->cf, sizeof(n_Procs_s)); 812 r->cf=NULL; 813 } 814 else 815 { 816 WarnS("cf_root list destroyed"); 817 } 818 } 819 } 820 } -
Singular/numbers.h
r133c5d rc880d63 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: numbers.h,v 1.1 6 2000-09-25 12:26:35 obachmanExp $ */6 /* $Id: numbers.h,v 1.17 2000-11-16 16:51:05 Singular Exp $ */ 7 7 /* 8 8 * ABSTRACT: interface to coefficient aritmetics … … 10 10 #include "structs.h" 11 11 12 /* typedefs */13 /*typedef void (*numberproc)(number a,number b,number * c);*/14 /*typedef number (*numberfunc)(number a,number b);*/15 16 12 #define n_Copy(n, r) nCopy(n) 13 //#define n_Delete(n, r) (r)->cf->nDelete(n) 17 14 #define n_Delete(n, r) nDelete(n) 18 15 #define n_Mult(n1, n2, r) nMult(n1, n2) … … 26 23 #define n_IsOne(n, r) nIsOne(n) 27 24 28 29 25 /* variables */ 30 26 extern short fftable[]; 31 /*extern int characteristic;*/32 27 33 28 /* prototypes */ … … 80 75 #endif 81 76 int nGetChar(); 77 void nInitChar(ring r); 78 void nKillChar(ring r); 82 79 void nSetChar(ring r, BOOLEAN complete); 83 80 -
Singular/ring.cc
r133c5d rc880d63 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ring.cc,v 1.14 0 2000-11-14 16:05:01 obachmanExp $ */4 /* $Id: ring.cc,v 1.141 2000-11-16 16:49:21 Singular Exp $ */ 5 5 6 6 /* … … 105 105 /*------------ global variables related to polys -------------------*/ 106 106 pSetGlobals(r, complete); 107 108 107 109 108 if (complete) … … 496 495 * p -p : Fp(a) *names FALSE 497 496 * q q : GF(q=p^n) *names TRUE 498 497 */ 499 498 if (ch!=-1) 500 499 { … … 590 589 591 590 // Complete the initialization 592 if (rComplete(R ))591 if (rComplete(R,1)) 593 592 goto rInitError; 594 593 … … 849 848 r->qideal = NULL; 850 849 } 850 nKillChar(r); 851 851 int i=1; 852 852 int j; … … 1783 1783 } 1784 1784 } 1785 1786 1785 1787 1786 i=0; … … 2013 2012 } 2014 2013 2014 2015 2015 if (r->N == 0) return TRUE; 2016 2016 … … 2090 2090 } 2091 2091 } 2092 //assume(r->cf!=NULL); 2093 2092 2094 return TRUE; 2093 2095 } … … 2381 2383 loop 2382 2384 { 2383 if (bits == BIT_SIZEOF_LONG) 2385 if (bits == BIT_SIZEOF_LONG) 2384 2386 { 2385 2387 bits = BIT_SIZEOF_LONG - 1; … … 2388 2390 unsigned long bitmask1 =rGetExpSize(bitmask+1, bits1); 2389 2391 int vars_per_long1=BIT_SIZEOF_LONG/bits1; 2390 if ((((N+vars_per_long-1)/vars_per_long) == 2392 if ((((N+vars_per_long-1)/vars_per_long) == 2391 2393 ((N+vars_per_long1-1)/vars_per_long1))) 2392 2394 { … … 2440 2442 case ringorder_Wp: 2441 2443 case ringorder_Dp: 2442 2444 r_ord=ringorder_lp; 2443 2445 break; 2444 2446 case ringorder_Ws: … … 2446 2448 case ringorder_ws: 2447 2449 case ringorder_ds: 2448 2450 r_ord=ringorder_ls; 2449 2451 break; 2450 2452 default: … … 2534 2536 if (pFDeg != r->pFDeg) 2535 2537 res->pFDeg = pFDeg; 2536 else if (r->pFDeg != res->pFDeg && 2538 else if (r->pFDeg != res->pFDeg && 2537 2539 rOrd_is_WeightedDegree_Ordering(r)) 2538 2540 // still might need adjustment … … 2549 2551 if (r->typ[0].data.syz.limit > 0) 2550 2552 { 2551 res->typ[0].data.syz.syz_index 2553 res->typ[0].data.syz.syz_index 2552 2554 = (int*) omAlloc((r->typ[0].data.syz.limit +1)*sizeof(int)); 2553 2555 memcpy(res->typ[0].data.syz.syz_index, r->typ[0].data.syz.syz_index, … … 2797 2799 { 2798 2800 if (r->VarOffset!=NULL && force == 0) return FALSE; 2801 nInitChar(r); 2799 2802 rSetOutParams(r); 2800 2803 rSetDegStuff(r); … … 3101 3104 // right-adjust VarOffset 3102 3105 rRightAdjustVarOffset(r); 3103 3106 3104 3107 // ---------------------------- 3105 3108 // set NegWeightL* … … 3107 3110 3108 3111 // ---------------------------- 3109 // p_Procs: call AFTER NegWeightL 3112 // p_Procs: call AFTER NegWeightL 3110 3113 r->p_Procs = (p_Procs_s*)omAlloc(sizeof(p_Procs_s)); 3111 3114 p_SetProcs(r, r->p_Procs); … … 3153 3156 int min = INT_MAX, min_j = -1; 3154 3157 int* VarL_Number = (int*) omAlloc0(r->ExpL_Size*sizeof(int)); 3155 3158 3156 3159 int i,j; 3157 3160 … … 3165 3168 for (i=0, j=0; i<r->ExpL_Size; i++) 3166 3169 { 3167 if (VarL_Number[i] != 0) 3170 if (VarL_Number[i] != 0) 3168 3171 { 3169 3172 if (min > VarL_Number[i]) … … 3179 3182 r->VarL_Offset = (int*) omAlloc(r->VarL_Size*sizeof(int)); 3180 3183 r->VarL_LowIndex = 0; 3181 3184 3182 3185 // set VarL_Offset 3183 3186 for (i=0, j=0; i<r->ExpL_Size; i++) … … 3211 3214 for (i=0;i<r->ExpL_Size;i++) 3212 3215 shifts[i] = BIT_SIZEOF_LONG; 3213 3216 3214 3217 // find minimal bit in each long var 3215 3218 for (i=1;i<=r->N;i++) … … 3222 3225 { 3223 3226 if (shifts[r->VarOffset[i] & 0xffffff] != 0) 3224 r->VarOffset[i] 3225 = (r->VarOffset[i] & 0xffffff) | 3227 r->VarOffset[i] 3228 = (r->VarOffset[i] & 0xffffff) | 3226 3229 (((r->VarOffset[i] >> 24) - shifts[r->VarOffset[i] & 0xffffff]) << 24); 3227 3230 } … … 3254 3257 "ro_syzcomp", "ro_syz", "ro_none"}; 3255 3258 int i,j; 3256 3259 3257 3260 Print("ExpL_Size:%d ",r->ExpL_Size); 3258 3261 Print("CmpL_Size:%d ",r->CmpL_Size); … … 3685 3688 return (r->order[lb] == ringorder_c || r->order[lb] == ringorder_C); 3686 3689 } 3690 3691 n_coeffType rFieldType(ring r) 3692 { 3693 if (rField_is_Zp(r)) return n_Zp; 3694 if (rField_is_Q(r)) return n_Q; 3695 if (rField_is_R(r)) return n_R; 3696 if (rField_is_GF(r)) return n_GF; 3697 if (rField_is_long_R(r)) return n_long_R; 3698 if (rField_is_Zp_a(r)) return n_Zp_a; 3699 if (rField_is_Q_a(r)) return n_Q_a; 3700 if (rField_is_long_C(r)) return n_long_C; 3701 return n_unknown; 3702 } -
Singular/ring.h
r133c5d rc880d63 7 7 * ABSTRACT - the interpreter related ring operations 8 8 */ 9 /* $Id: ring.h,v 1.5 5 2000-11-14 16:05:02 obachmanExp $ */9 /* $Id: ring.h,v 1.56 2000-11-16 16:49:20 Singular Exp $ */ 10 10 11 11 /* includes */ … … 129 129 inline BOOLEAN rField_is_Extension(ring r=currRing) 130 130 { return (rField_is_Q_a(r)) || (rField_is_Zp_a(r)); } /* Z/p(a) and Q(a)*/ 131 132 n_coeffType rFieldType(ring r); 131 133 132 134 // this needs to be called whenever a new ring is created: new fields -
Singular/structs.h
r133c5d rc880d63 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: structs.h,v 1.4 4 2000-11-13 14:50:25 levandovExp $ */6 /* $Id: structs.h,v 1.45 2000-11-16 16:50:16 Singular Exp $ */ 7 7 /* 8 8 * ABSTRACT … … 43 43 }; 44 44 45 enum n_coeffType 46 { 47 n_unknown=0, 48 n_Zp, 49 n_Q, 50 n_R, 51 n_GF, 52 n_long_R, 53 n_Zp_a, 54 n_Q_a, 55 n_long_C 56 }; 57 45 58 #ifdef HAVE_PLURAL 46 59 enum nc_type … … 51 64 }; 52 65 #endif 66 67 53 68 /* C++-part */ 54 69 #ifdef __cplusplus … … 66 81 #endif 67 82 68 struct sip_sring; 69 struct sip_sideal; 70 struct sip_link; 71 struct spolynom; 83 struct n_Procs_s; 84 struct sip_sring; 85 struct sip_sideal; 86 struct sip_link; 87 struct spolynom; 72 88 struct _ssubexpr; 73 89 struct _sssym; … … 77 93 struct s_si_link_extension; 78 94 struct reca; 95 96 typedef struct n_Procs_s n_Procs_s; 97 79 98 #ifdef HAVE_PLURAL 80 99 struct nc_struct; 81 100 typedef struct nc_struct nc_struct; 82 101 #endif 102 83 103 typedef struct _ssubexpr sSubexpr; 84 104 typedef struct _sssym ssym; … … 93 113 94 114 /* the pointer types */ 95 typedef char * 96 typedef int * 97 typedef short * 98 typedef void * 115 typedef char * char_ptr; 116 typedef int * int_ptr; 117 typedef short * short_ptr; 118 typedef void * void_ptr; 99 119 typedef ip_sring * ring; 100 120 typedef int idtyp; … … 165 185 typedef struct _scmdnames cmdnames; 166 186 187 typedef number (*numberfunc)(number a,number b); 188 struct n_Procs_s 189 { 190 n_Procs_s* next; 191 int nChar; 192 n_coeffType type; 193 int char_flag; 194 int ref; 195 // the union stuff 196 // Zp: 197 int npPrimeM; 198 int npPminus1M; 199 CARDINAL *npExpTable; 200 CARDINAL *npLogTable; 201 // Zp_a, Q_a 202 203 // general stuff 204 numberfunc nMult, nSub ,nAdd ,nDiv, nIntDiv, nIntMod, nExactDiv; 205 void (*nNew)(number * a); 206 number (*nInit)(int i); 207 number (*nPar)(int i); 208 int (*nParDeg)(number n); 209 int (*nSize)(number n); 210 int (*nInt)(number &n); 211 number (*nNeg)(number a); 212 number (*nInvers)(number a); 213 number (*nCopy)(number a); 214 void (*nWrite)(number &a); 215 char * (*nRead)(char * s, number * a); 216 void (*nNormalize)(number &a); 217 BOOLEAN (*nGreater)(number a,number b), 218 (*nEqual)(number a,number b), 219 (*nIsZero)(number a), 220 (*nIsOne)(number a), 221 (*nIsMOne)(number a), 222 (*nGreaterZero)(number a); 223 void (*nPower)(number a, int i, number * result); 224 number (*nGetDenom)(number &n); 225 numberfunc nGcd, nLcm; 226 BOOLEAN (*nSetMap)(ring r); 227 #ifdef LDEBUG 228 BOOLEAN (*nDBTest)(number a, char *f, int l); 229 void (*nDBDelete)(number * a,char *f, int l); 230 #else 231 void (*nDelete)(number * a); 232 #endif 233 char * (*nName)(number n); 234 //extern number (*nMap)(number from); 235 236 number nNULL; /* the 0 as constant */ 237 }; 238 167 239 /* the function pointer types */ 168 typedef number (*numberfunc)(number a,number b);169 240 170 241 extern ring currRing; … … 357 428 pLDegProc pLDeg; 358 429 p_SetmProc p_Setm; 430 n_Procs_s* cf; 431 ring algring; 359 432 #ifdef HAVE_PLURAL 360 433 nc_struct *nc;
Note: See TracChangeset
for help on using the changeset viewer.