Changeset d663f2 in git
- Timestamp:
- Aug 25, 2011, 6:52:34 PM (12 years ago)
- Branches:
- (u'spielwiese', '0d6b7fcd9813a1ca1ed4220cfa2b104b97a0a003')
- Children:
- 50b874afcba55b265e25d44bbebf37f1a74402a6
- Parents:
- ef6f951a70b932a931c74771bcc97ed20e73dad7
- git-author:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2011-08-25 18:52:34+02:00
- git-committer:
- Mohamed Barakat <mohamed.barakat@rwth-aachen.de>2011-11-09 16:12:29+01:00
- Location:
- libpolys
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
libpolys/coeffs/longrat.cc
ref6f95 rd663f2 6 6 * ABSTRACT: computation with long rational numbers (Hubert Grassmann) 7 7 */ 8 8 9 #include "config.h" 9 10 #include <misc/auxiliary.h> … … 129 130 } 130 131 131 //#ifndef SI_THREADS132 omBin rnumber_bin = omGetSpecBin(sizeof(snumber));133 //#endif134 132 135 133 number nlOne=INT_TO_SR(1); … … 160 158 static number nlMapLongR(number from, const coeffs src, const coeffs dst); 161 159 static number nlMapR(number from, const coeffs src, const coeffs dst); 160 162 161 163 162 #ifdef HAVE_RINGS … … 323 322 else 324 323 { 325 number z =(number)omAllocBin(rnumber_bin);324 number z = ALLOC_RNUMBER(); //Q!? // (number)omAllocBin(rnumber_bin); 326 325 #if defined(LDEBUG) 327 326 z->debug=123456; … … 542 541 } 543 542 544 void nlMPZ(mpz_t m, number &n, const coeffs r)545 {546 assume( getCoeffType(r) == ID );547 548 nlTest(n, r);549 nlNormalize(n, r);550 if (SR_HDL(n) & SR_INT) mpz_init_set_si(m, SR_TO_INT(n)); /* n fits in an int */551 else mpz_init_set(m, (mpz_ptr)n->z);552 }553 554 555 543 /*2 556 544 * convert number to int … … 723 711 bb->debug=654324; 724 712 #endif 725 omFreeBin((void *)bb, rnumber_bin);713 FREE_RNUMBER(bb); // omFreeBin((void *)bb, rnumber_bin); 726 714 } 727 715 u=nlShort3(u); … … 789 777 bb->debug=654324; 790 778 #endif 791 omFreeBin((void *)bb, rnumber_bin);779 FREE_RNUMBER(bb); // omFreeBin((void *)bb, rnumber_bin); 792 780 } 793 781 u=nlShort3(u); … … 866 854 bb->debug=654324; 867 855 #endif 868 omFreeBin((void *)bb, rnumber_bin);856 FREE_RNUMBER(bb); // omFreeBin((void *)bb, rnumber_bin); 869 857 } 870 858 if (mpz_isNeg(u->z)) … … 909 897 if (r==0) 910 898 { 911 omFreeBin((void *)u, rnumber_bin);899 FREE_RNUMBER(u); // omFreeBin((void *)u, rnumber_bin); 912 900 return INT_TO_SR(i/j); 913 901 } … … 1456 1444 #endif 1457 1445 } 1458 omFreeBin((void *) *a, rnumber_bin);1446 FREE_RNUMBER(*a); // omFreeBin((void *) *a, rnumber_bin); 1459 1447 } 1460 1448 } … … 2112 2100 } 2113 2101 2114 2115 number nlInitMPZ(mpz_t m, const coeffs r)2116 {2117 number z = ALLOC_RNUMBER();2118 mpz_init_set(z->z, m);2119 mpz_init_set_ui(z->n, 1);2120 z->s = 3;2121 return z;2122 }2123 2124 2102 /*2 2125 2103 * a == 1 ? … … 2448 2426 #ifndef P_NUMBERS_H 2449 2427 2428 static void nlMPZ(mpz_t m, number &n, const coeffs r) 2429 { 2430 assume( getCoeffType(r) == ID ); 2431 2432 nlTest(n, r); 2433 nlNormalize(n, r); 2434 if (SR_HDL(n) & SR_INT) mpz_init_set_si(m, SR_TO_INT(n)); /* n fits in an int */ 2435 else mpz_init_set(m, (mpz_ptr)n->z); 2436 } 2437 2438 2439 static number nlInitMPZ(mpz_t m, const coeffs r) 2440 { 2441 number z = ALLOC_RNUMBER(); 2442 mpz_init_set(z->z, m); 2443 mpz_init_set_ui(z->n, 1); 2444 z->s = 3; 2445 return z; 2446 } 2447 2448 2450 2449 void nlInpGcd(number &a, number b, const coeffs r) 2451 2450 { … … 2607 2606 r->cfKillChar = ndKillChar; /* dummy */ 2608 2607 2608 r->cfInitMPZ = nlInitMPZ; 2609 r->cfMPZ = nlMPZ; 2610 2609 2611 r->cfMult = nlMult; 2610 2612 r->cfSub = nlSub; … … 2615 2617 r->cfExactDiv= nlExactDiv; 2616 2618 r->cfInit = nlInit; 2617 r->cfInitMPZ = nlInitMPZ;2618 2619 r->cfSize = nlSize; 2619 2620 r->cfInt = nlInt; 2620 r->cfMPZ = nlMPZ; 2621 2621 2622 2622 r->cfChineseRemainder=nlChineseRemainder; 2623 2623 r->cfFarey=nlFarey; … … 2707 2707 { 2708 2708 mpz_clear(&r->z); 2709 omFreeBin((void *)r, rnumber_bin);2709 FREE_RNUMBER(r); // omFreeBin((void *)r, rnumber_bin); 2710 2710 r=INT_TO_SR(ui); 2711 2711 } -
libpolys/coeffs/longrat.h
ref6f95 rd663f2 61 61 number nlInit2 (int i, int j, const coeffs r); 62 62 number nlInit2gmp (mpz_t i, mpz_t j); 63 64 // number nlInitMPZ(mpz_t m, const coeffs r); 65 // void nlMPZ(mpz_t m, number &n, const coeffs r); 66 63 67 number nlGcd(number a, number b, const coeffs r); 64 68 number nlLcm(number a, number b, const coeffs r); /*special routine !*/ … … 100 104 extern omBin rnumber_bin; 101 105 102 103 106 #define FREE_RNUMBER(x) omFreeBin((void *)x, rnumber_bin) 104 107 #define ALLOC_RNUMBER() (number)omAllocBin(rnumber_bin) -
libpolys/coeffs/longrat0.cc
ref6f95 rd663f2 10 10 #include <stdio.h> 11 11 #include <string.h> 12 12 13 #include "config.h" 14 #include <misc/auxiliary.h> 15 16 #include <omalloc/omalloc.h> 13 17 #include <reporter/reporter.h> 14 #include <coeffs/coeffs.h> 15 #include <omalloc/omalloc.h> 16 #include <coeffs/longrat.h> 17 #include <coeffs/numbers.h> 18 19 #include "coeffs.h" 20 #include "numbers.h" 21 22 #include "longrat.h" 23 24 /// Our Type! 25 static const n_coeffType ID = n_Q; 26 27 //#ifndef SI_THREADS 28 omBin rnumber_bin = omGetSpecBin(sizeof(snumber)); // TODO: move this into coeffs-struct (for Q)?! 29 //#endif 30 18 31 19 32 #define SR_HDL(A) ((long)(A)) … … 143 156 } 144 157 158 -
libpolys/coeffs/modulop.cc
ref6f95 rd663f2 632 632 if(res->s==0) 633 633 iz=(long)npDiv((number)iz,(number)in,dst_r); 634 omFreeBin((void *)res, rnumber_bin);634 FREE_RNUMBER(res); // Q!? 635 635 return (number)iz; 636 636 } -
libpolys/polys/clapconv.cc
ref6f95 rd663f2 356 356 p_SetExp( term, i ,exp[i], r); 357 357 //if (rRing_has_Comp(currRing)) p_SetComp(term, 0, currRing); // done by pInit 358 pGetCoeff(term) =(number)omAlloc0Bin(rnumber_bin);358 pGetCoeff(term) = ALLOC0_RNUMBER(); // Q!? 359 359 ((lnumber)pGetCoeff(term))->z=convFactoryPSingP( f, r->extRing ); 360 360 p_Setm( term,r ); -
libpolys/polys/templates/p_Numbers.h
ref6f95 rd663f2 76 76 77 77 #define DO_LINLINE 78 #include <coeffs/longrat.cc> 78 #include <coeffs/longrat.cc> // TODO: fix this Uglyness?!!! 79 79 80 #define n_Copy_FieldQ(n, r) nlCopy(n, r->cf) 80 81 #define n_Delete_FieldQ(n, r) nlDelete(n,r->cf)
Note: See TracChangeset
for help on using the changeset viewer.