Changeset c90b43 in git
- Timestamp:
- May 6, 2009, 2:53:49 PM (14 years ago)
- Branches:
- (u'jengelh-datetime', 'ceac47cbc86fe4a15902392bdbb9bd2ae0ea02c6')(u'spielwiese', 'a657104b677b4c461d018cbf3204d72d34ad66a9')
- Children:
- f16a76d72e29ae88bdd1b8cd60bff79fb200f3cd
- Parents:
- 63f9d7f203418a51870fe958f2fbc8332b67925c
- Files:
-
- 16 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/mod2.h.in
r63f9d7 rc90b43 6 6 * DO NOT EDIT! 7 7 * 8 * Version: $Id: mod2.h.in,v 1.14 0 2009-05-06 10:29:59Singular Exp $8 * Version: $Id: mod2.h.in,v 1.141 2009-05-06 12:53:17 Singular Exp $ 9 9 *******************************************************************/ 10 10 #ifndef MOD2_H … … 204 204 #define HAVE_RINGS 205 205 206 #ifdef HAVE_RINGS207 #define HAVE_RING2TOM208 #define HAVE_RINGMODN209 #define HAVE_RINGZ210 #endif211 212 206 /* procedures to compute with units */ 213 207 #define HAVE_UNITS -
kernel/kstd2.cc
r63f9d7 rc90b43 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: kstd2.cc,v 1.8 5 2009-04-23 16:24:08 Singular Exp $ */4 /* $Id: kstd2.cc,v 1.86 2009-05-06 12:53:48 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT - Kernel: alg. of Buchberger … … 148 148 } 149 149 150 #ifdef HAVE_RING 2TOM150 #ifdef HAVE_RINGS 151 151 NATNUMBER factorial(NATNUMBER arg) 152 152 { -
kernel/kutil.cc
r63f9d7 rc90b43 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: kutil.cc,v 1.13 6 2009-04-23 17:39:31Singular Exp $ */4 /* $Id: kutil.cc,v 1.137 2009-05-06 12:53:48 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: kernel: utils for kStd … … 22 22 #endif 23 23 24 #ifdef HAVE_RING 2TOM24 #ifdef HAVE_RINGS 25 25 #include "ideals.h" 26 26 #endif … … 2487 2487 #endif 2488 2488 2489 #ifdef HAVE_RING 2TOM2489 #ifdef HAVE_RINGS 2490 2490 long ind2(long arg) 2491 2491 { -
kernel/kutil.h
r63f9d7 rc90b43 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: kutil.h,v 1.4 3 2009-03-18 16:56:02Singular Exp $ */6 /* $Id: kutil.h,v 1.44 2009-05-06 12:53:48 Singular Exp $ */ 7 7 /* 8 8 * ABSTRACT: kernel: utils for kStd … … 415 415 void superenterpairs (poly h,int k,int ecart,int pos,kStrategy strat, int atR = -1); 416 416 poly kCreateZeroPoly(long exp[], long cabsind, poly* t_p, ring leadRing, ring tailRing); 417 #endif418 #ifdef HAVE_RING2TOM419 417 long ind2(long arg); 418 420 419 long ind_fact_2(long arg); 421 420 long twoPow(long arg); -
kernel/mod2.h.in
r63f9d7 rc90b43 6 6 * DO NOT EDIT! 7 7 * 8 * Version: $Id: mod2.h.in,v 1.3 2 2009-05-06 10:29:59Singular Exp $8 * Version: $Id: mod2.h.in,v 1.33 2009-05-06 12:53:48 Singular Exp $ 9 9 *******************************************************************/ 10 10 #ifndef MOD2_H … … 204 204 #define HAVE_RINGS 205 205 206 #ifdef HAVE_RINGS207 #define HAVE_RING2TOM208 #define HAVE_RINGMODN209 #define HAVE_RINGZ210 #endif211 212 206 /* procedures to compute with units */ 213 207 #define HAVE_UNITS -
kernel/numbers.cc
r63f9d7 rc90b43 2 2 * Computer Algebra System SINGULAR * 3 3 *****************************************/ 4 /* $Id: numbers.cc,v 1.2 0 2008-12-09 08:59:32Singular Exp $ */4 /* $Id: numbers.cc,v 1.21 2009-05-06 12:53:48 Singular Exp $ */ 5 5 6 6 /* … … 23 23 #include "ffields.h" 24 24 #include "shortfl.h" 25 #ifdef HAVE_RING 2TOM25 #ifdef HAVE_RINGS 26 26 #include "rmodulo2m.h" 27 #endif28 #ifdef HAVE_RINGMODN29 27 #include "rmodulon.h" 30 #endif31 #ifdef HAVE_RINGZ32 28 #include "rintegers.h" 33 29 #endif … … 137 133 138 134 n__Delete= r->cf->cfDelete; 139 135 140 136 /*--------------------- Q -----------------*/ 141 137 if (rField_is_Q(r)) … … 150 146 if (rField_is_Zp_a()) nInit_bigint=naMap0P; 151 147 } 152 #ifdef HAVE_RING 2TOM148 #ifdef HAVE_RINGS 153 149 /*----------------------ring Z / 2^m----------------*/ 154 150 else if (rField_is_Ring_2toM(r)) … … 157 153 nInit_bigint=nr2mMapQ; 158 154 } 159 #endif160 #ifdef HAVE_RINGZ161 155 /*----------------------ring Z / 2^m----------------*/ 162 156 else if (rField_is_Ring_Z(r)) … … 165 159 nInit_bigint=nrzMapQ; 166 160 } 167 #endif168 #ifdef HAVE_RINGMODN169 161 /*----------------------ring Z / n----------------*/ 170 162 else if (rField_is_Ring_ModN(r)) … … 173 165 nInit_bigint=nrnMapQ; 174 166 } 175 #endif176 #ifdef HAVE_RINGMODN177 167 /*----------------------ring Z / n----------------*/ 178 168 else if (rField_is_Ring_PtoM(r)) … … 364 354 #endif 365 355 } 366 #ifdef HAVE_RING 2TOM356 #ifdef HAVE_RINGS 367 357 /* -------------- Z/2^m ----------------------- */ 368 358 else if (rField_is_Ring_2toM(r)) … … 403 393 #endif 404 394 } 405 #endif406 #ifdef HAVE_RINGMODN407 395 /* -------------- Z/n ----------------------- */ 408 396 else if (rField_is_Ring_ModN(r) || rField_is_Ring_PtoM(r) … … 447 435 #endif 448 436 } 449 #endif450 #ifdef HAVE_RINGZ451 437 /* -------------- Z ----------------------- */ 452 438 else if (rField_is_Ring_Z(r)) … … 733 719 case n_Zp: 734 720 #ifdef HAVE_DIV_MOD 735 721 if (r->cf->npInvTable!=NULL) 736 722 omFreeSize( (ADDRESS)r->cf->npInvTable, 737 723 r->cf->npPrimeM*sizeof(CARDINAL) ); 738 724 #else 739 740 725 if (r->cf->npExpTable!=NULL) 726 { 741 727 omFreeSize( (ADDRESS)r->cf->npExpTable, 742 728 r->cf->npPrimeM*sizeof(CARDINAL) ); 743 729 omFreeSize( (ADDRESS)r->cf->npLogTable, 744 730 r->cf->npPrimeM*sizeof(CARDINAL) ); 745 731 } 746 732 #endif 747 733 break; 748 749 750 751 752 753 754 755 756 757 758 759 734 case n_Zp_a: 735 case n_Q_a: 736 { 737 number n=r->minpoly; 738 if (n!=NULL) 739 { 740 r->minpoly=NULL; 741 if (r==currRing) naMinimalPoly=NULL; 742 naDelete(&n,r); 743 } 744 } 745 break; 760 746 761 747 default: -
kernel/ring.cc
r63f9d7 rc90b43 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ring.cc,v 1.11 6 2009-04-03 20:02:20 motsakExp $ */4 /* $Id: ring.cc,v 1.117 2009-05-06 12:53:49 Singular Exp $ */ 5 5 6 6 /* … … 287 287 { 288 288 PrintS("// coeff. ring is : "); 289 #ifdef HAVE_RINGZ290 289 if (rField_is_Ring_Z(r)) PrintS("Integers\n"); 291 #endif292 290 int l = mpz_sizeinbase(r->ringflaga, 10) + 2; 293 291 char* s = (char*) omAlloc(l); 294 292 mpz_get_str(s,10,r->ringflaga); 295 #ifdef HAVE_RINGMODN296 293 if (rField_is_Ring_ModN(r)) Print("Z/%s\n", s); 297 #endif298 #ifdef HAVE_RING2TOM299 294 if (rField_is_Ring_2toM(r)) Print("Z/2^%lu\n", r->ringflagb); 300 #endif301 #ifdef HAVE_RINGMODN302 295 if (rField_is_Ring_PtoM(r)) Print("Z/%s^%lu\n", s, r->ringflagb); 303 #endif304 296 omFreeSize((ADDRESS)s, l); 305 297 } … … 1507 1499 #ifdef HAVE_RINGS 1508 1500 res->ringtype=r->ringtype; /* cring = 0 => coefficient field, cring = 1 => coeffs from Z/2^m */ 1509 if (r->ringflaga!=NULL) 1501 if (r->ringflaga!=NULL) 1510 1502 { 1511 1503 res->ringflaga = (int_number) omAlloc(sizeof(MP_INT)); … … 4404 4396 #endif 4405 4397 4406 4398 4407 4399 // ring r = rCopy0(src,TRUE); /* TRUE for copy the qideal: Why??? */ 4408 4400 ring r = rCopy0(src,FALSE); /* qideal will be deleted later on!!! */ 4409 4401 4410 4402 /* rChangeCurrRing(r); */ 4411 4403 // change vars v1..vN -> vN..v1 … … 4630 4622 #endif 4631 4623 4632 4624 4633 4625 #ifdef HAVE_PLURAL 4634 4626 // now, we initialize a non-comm structure on r … … 4670 4662 WarnS("Error initializing non-commutative multiplication!"); 4671 4663 4672 4673 4664 #ifdef RDEBUG 4674 4665 rTest(r); … … 4680 4671 4681 4672 omFreeSize((ADDRESS)perm,(rVar(r)+1)*sizeof(int)); 4682 4683 4673 } 4684 4674 #endif /* HAVE_PLURAL */ 4685 4686 4675 4687 4676 /* now oppose the qideal for qrings */ … … 4696 4685 #endif 4697 4686 4698 4699 4687 #ifdef HAVE_PLURAL 4700 4688 if( rIsPluralRing(r) ) 4701 4689 { 4702 4690 nc_SetupQuotient(r); 4703 4704 4691 #ifdef RDEBUG 4705 4692 rTest(r); … … 4708 4695 #endif 4709 4696 } 4710 4711 #endif 4712 } 4713 4714 4697 #endif 4698 } 4715 4699 #ifdef HAVE_PLURAL 4716 4700 if( rIsPluralRing(r) ) 4717 4701 assume( ncRingType(r) == ncRingType(src) ); 4718 4702 #endif 4719 4720 4721 4703 rTest(r); 4722 4704 -
kernel/ring.h
r63f9d7 rc90b43 7 7 * ABSTRACT - the interpreter related ring operations 8 8 */ 9 /* $Id: ring.h,v 1.4 0 2009-02-23 11:26:29 Singular Exp $ */9 /* $Id: ring.h,v 1.41 2009-05-06 12:53:49 Singular Exp $ */ 10 10 11 11 /* includes */ … … 103 103 BOOLEAN rRing_has_CompLastBlock(ring r=currRing); 104 104 105 #ifdef HAVE_RING 2TOM105 #ifdef HAVE_RINGS 106 106 inline BOOLEAN rField_is_Ring_2toM(ring r=currRing) 107 107 { return (r->ringtype == 1); } 108 #endif 109 110 #ifdef HAVE_RINGMODN 108 111 109 inline BOOLEAN rField_is_Ring_ModN(ring r=currRing) 112 110 { return (r->ringtype == 2); } … … 114 112 inline BOOLEAN rField_is_Ring_PtoM(ring r=currRing) 115 113 { return (r->ringtype == 3); } 116 #endif 117 118 #ifdef HAVE_RINGZ 114 119 115 inline BOOLEAN rField_is_Ring_Z(ring r=currRing) 120 116 { return (r->ringtype == 4); } 121 #endif 122 123 #ifdef HAVE_RINGS 117 124 118 inline BOOLEAN rField_is_Ring(ring r=currRing) 125 119 { return (r->ringtype != 0); } … … 243 237 { return (rField_is_Zp(r) 244 238 || rField_is_GF(r) 245 #ifdef HAVE_RING 2TOM239 #ifdef HAVE_RINGS 246 240 || rField_is_Ring_2toM(r) 247 241 #endif -
kernel/ringgb.cc
r63f9d7 rc90b43 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ringgb.cc,v 1.1 6 2007-06-20 09:39:25 wienandExp $ */4 /* $Id: ringgb.cc,v 1.17 2009-05-06 12:53:49 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: ringgb interface … … 29 29 #include "ringgb.h" 30 30 31 #ifdef HAVE_RING 2TOM31 #ifdef HAVE_RINGS 32 32 poly reduce_poly_fct(poly p, ring r) 33 33 { … … 39 39 * 2^k | n 40 40 */ 41 int indexOf2(number n) { 41 int indexOf2(number n) 42 { 42 43 long test = (long) n; 43 44 int i = 0; 44 while (test%2 == 0) { 45 while (test%2 == 0) 46 { 45 47 i++; 46 48 test = test / 2; … … 59 61 poly &m1, poly &m2, const ring m_r) 60 62 { 61 62 63 int i; 63 64 Exponent_t x; … … 83 84 long cp1 = (long) pGetCoeff(p1); 84 85 long cp2 = (long) pGetCoeff(p2); 85 if (cp1 != 0 && cp2 != 0) { 86 while (cp1%2 == 0 && cp2%2 == 0) { 86 if (cp1 != 0 && cp2 != 0) 87 { 88 while (cp1%2 == 0 && cp2%2 == 0) 89 { 87 90 cp1 = cp1 / 2; 88 91 cp2 = cp2 / 2; … … 101 104 } 102 105 103 poly spolyRing2toM(poly f, poly g, ring r) { 106 poly spolyRing2toM(poly f, poly g, ring r) 107 { 104 108 poly m1 = NULL; 105 109 poly m2 = NULL; … … 114 118 } 115 119 116 poly ringRedNF (poly f, ideal G, ring r) { 120 poly ringRedNF (poly f, ideal G, ring r) 121 { 117 122 // If f = 0, then normal form is also 0 118 123 if (f == NULL) { return NULL; } … … 147 152 * of the suitable g from G. 148 153 */ 149 int findRingSolver(poly rside, ideal G, ring r) { 154 int findRingSolver(poly rside, ideal G, ring r) 155 { 150 156 if (rside == NULL) return -1; 151 157 int i; 152 158 // int iO2rside = indexOf2(pGetCoeff(rside)); 153 for (i = 0; i < IDELEMS(G); i++) { 159 for (i = 0; i < IDELEMS(G); i++) 160 { 154 161 if // (indexOf2(pGetCoeff(G->m[i])) <= iO2rside && / should not be necessary any more 155 (p_LmDivisibleBy(G->m[i], rside, r)) { 162 (p_LmDivisibleBy(G->m[i], rside, r)) 163 { 156 164 return i; 157 165 } … … 160 168 } 161 169 162 poly plain_spoly(poly f, poly g) { 170 poly plain_spoly(poly f, poly g) 171 { 163 172 number cf = nCopy(pGetCoeff(f)), cg = nCopy(pGetCoeff(g)); 164 173 int ct = ksCheckCoeff(&cf, &cg); // gcd and zero divisors … … 188 197 } 189 198 190 poly ringNF(poly f, ideal G, ring r) { 199 poly ringNF(poly f, ideal G, ring r) 200 { 191 201 // If f = 0, then normal form is also 0 192 202 if (f == NULL) { return NULL; } … … 259 269 { 260 270 Print(" Yes!\nzero-spoly --> 0?"); 261 for (i = 0; i < IDELEMS(GI); i++) 271 for (i = 0; i < IDELEMS(GI); i++) 262 272 { 263 273 f = plain_zero_spoly(GI->m[i]); -
kernel/ringgb.h
r63f9d7 rc90b43 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: ringgb.h,v 1. 7 2007-05-11 10:56:03 wienandExp $ */4 /* $Id: ringgb.h,v 1.8 2009-05-06 12:53:49 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: ringgb interface … … 17 17 int testGB(ideal I, ideal GI); 18 18 19 #ifdef HAVE_RING2TOM20 19 poly reduce_poly_fct(poly p, ring r); 21 20 poly ringRedNF(poly f, ideal G, ring r); 22 #endif23 21 24 22 #endif -
kernel/rintegers.cc
r63f9d7 rc90b43 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: rintegers.cc,v 1.2 0 2009-01-19 12:34:50Singular Exp $ */4 /* $Id: rintegers.cc,v 1.21 2009-05-06 12:53:49 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: numbers modulo n … … 20 20 #include "si_gmp.h" 21 21 22 #ifdef HAVE_RING Z22 #ifdef HAVE_RINGS 23 23 24 24 omBin gmp_nrz_bin = omGetSpecBin(sizeof(MP_INT)); -
kernel/rintegers.h
r63f9d7 rc90b43 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: rintegers.h,v 1. 7 2008-07-16 12:41:33 wienandExp $ */6 /* $Id: rintegers.h,v 1.8 2009-05-06 12:53:49 Singular Exp $ */ 7 7 /* 8 8 * ABSTRACT: numbers modulo n 9 9 */ 10 #ifdef HAVE_RING Z10 #ifdef HAVE_RINGS 11 11 #include "structs.h" 12 12 -
kernel/rmodulo2m.cc
r63f9d7 rc90b43 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: rmodulo2m.cc,v 1.2 3 2008-12-08 15:00:43Singular Exp $ */4 /* $Id: rmodulo2m.cc,v 1.24 2009-05-06 12:53:49 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: numbers modulo 2^m … … 10 10 #include "mod2.h" 11 11 12 #ifdef HAVE_RING 2TOM12 #ifdef HAVE_RINGS 13 13 #include <mylimits.h> 14 14 #include "structs.h" … … 165 165 number nr2mGetUnit (number k) 166 166 { 167 if (k == NULL) 167 if (k == NULL) 168 168 return (number) 1; 169 169 NATNUMBER tmp = (NATNUMBER) k; -
kernel/rmodulo2m.h
r63f9d7 rc90b43 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: rmodulo2m.h,v 1.1 0 2008-07-16 12:41:33 wienandExp $ */6 /* $Id: rmodulo2m.h,v 1.11 2009-05-06 12:53:49 Singular Exp $ */ 7 7 /* 8 8 * ABSTRACT: numbers modulo 2^m 9 9 */ 10 #ifdef HAVE_RING 2TOM10 #ifdef HAVE_RINGS 11 11 #include "structs.h" 12 12 -
kernel/rmodulon.cc
r63f9d7 rc90b43 2 2 * Computer Algebra System SINGULAR * 3 3 ****************************************/ 4 /* $Id: rmodulon.cc,v 1.3 2 2009-01-19 12:43:53Singular Exp $ */4 /* $Id: rmodulon.cc,v 1.33 2009-05-06 12:53:49 Singular Exp $ */ 5 5 /* 6 6 * ABSTRACT: numbers modulo n … … 20 20 #include "si_gmp.h" 21 21 22 #ifdef HAVE_RINGMODN 23 #ifdef HAVE_RINGZ 24 #define gmp_nrn_bin gmp_nrz_bin 25 extern omBin gmp_nrz_bin; 26 #else 27 omBin gmp_nrn_bin = omGetSpecBin(sizeof(MP_INT)); 28 #endif 22 #ifdef HAVE_RINGS 23 #define gmp_nrn_bin gmp_nrz_bin 24 extern omBin gmp_nrz_bin; 29 25 30 26 int_number nrnModul = NULL; -
kernel/rmodulon.h
r63f9d7 rc90b43 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 /* $Id: rmodulon.h,v 1. 9 2008-07-16 12:41:33 wienandExp $ */6 /* $Id: rmodulon.h,v 1.10 2009-05-06 12:53:49 Singular Exp $ */ 7 7 /* 8 8 * ABSTRACT: numbers modulo n 9 9 */ 10 #ifdef HAVE_RING MODN10 #ifdef HAVE_RINGS 11 11 #include "structs.h" 12 12
Note: See TracChangeset
for help on using the changeset viewer.