Changeset dd46a1 in git
- Timestamp:
- Dec 16, 2014, 11:49:45 AM (9 years ago)
- Branches:
- (u'spielwiese', 'd0474371d8c5d8068ab70bfb42719c97936b18a6')
- Children:
- c2bd74d45d36d04bb7dfe21b1ae28a52345bc2c7
- Parents:
- 80b6d366c7d9906d194bdb7023d476a11e90d9575ec3a5f03019fc859ebafef214f814bd0531e8f8
- Files:
-
- 77 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/dyn_modules/Order/lattice.cc
r80b6d36 rdd46a1 1 #include < libpolys/coeffs/bigintmat.h>1 #include <coeffs/bigintmat.h> 2 2 #include "lattice.h" 3 3 //#include "kernel/febase.h" // for Print, WerrorS 4 #include "libpolys/coeffs/numbers.h"5 #include "libpolys/coeffs/coeffs.h"4 #include <coeffs/numbers.h> 5 #include <coeffs/coeffs.h> 6 6 #include "Singular/ipid.h" 7 7 #include <iostream> … … 10 10 //for minkowski 11 11 #include "kernel/numeric/mpr_numeric.h" 12 #include "libpolys/coeffs/gnumpc.cc"13 12 14 13 … … 1069 1068 for(int j=1;j<=size_elementarray;j++){ 1070 1069 complexmat->set(r1+2*i,j,n_Mult(complexmat->view(r1+2*i,j),sqrt2,comp),comp); 1071 complexmat->set(r1+2*i-1,j,n gcRePart(complexmat->view(r1+2*i,j),comp),comp);1072 complexmat->set(r1+2*i,j,n gcImPart(complexmat->view(r1+2*i,j),comp),comp);1070 complexmat->set(r1+2*i-1,j,n_RePart(complexmat->view(r1+2*i,j),comp),comp); 1071 complexmat->set(r1+2*i,j,n_ImPart(complexmat->view(r1+2*i,j),comp),comp); 1073 1072 } 1074 1073 } … … 1097 1096 1098 1097 bool IsReal(number a, coeffs coef){ //Im(a)==0 1099 number imag = n gcImPart(a, coef);1098 number imag = n_ImPart(a, coef); 1100 1099 bool out = n_IsZero(imag,coef); 1101 1100 n_Delete(&imag,coef); … … 1104 1103 1105 1104 bool ImagGreaterZero(number a, coeffs coef){ //Im(a)>0 1106 number imag = n gcImPart(a, coef);1105 number imag = n_ImPart(a, coef); 1107 1106 bool out = n_GreaterZero(imag,coef); 1108 1107 n_Delete(&imag,coef); -
Singular/dyn_modules/Order/nforder.cpp
r80b6d36 rdd46a1 1 #include < libpolys/coeffs/bigintmat.h>1 #include <coeffs/bigintmat.h> 2 2 #include "nforder.h" 3 3 #include <reporter/reporter.h> 4 #include "libpolys/coeffs/numbers.h"5 #include "libpolys/coeffs/coeffs.h"4 #include<coeffs/numbers.h> 5 #include <coeffs/coeffs.h> 6 6 #include "Singular/ipid.h" 7 7 -
Singular/dyn_modules/Order/nforder_elt.cc
r80b6d36 rdd46a1 3 3 #include"Singular/ipid.h" // for SModulFunctions, leftv 4 4 #include"Singular/number2.h" // for SModulFunctions, leftv 5 #include "libpolys/coeffs/numbers.h"// nRegister, coeffs.h6 #include "libpolys/coeffs/coeffs.h"5 #include<coeffs/numbers.h> // nRegister, coeffs.h 6 #include <coeffs/coeffs.h> 7 7 #include"Singular/blackbox.h" // blackbox type 8 8 #include "nforder.h" 9 #include "libpolys/coeffs/bigintmat.h"9 #include <coeffs/bigintmat.h> 10 10 11 11 extern n_coeffType nforder_type; -
Singular/dyn_modules/Order/nforder_ideal.cc
r80b6d36 rdd46a1 1 #include < libpolys/coeffs/bigintmat.h>1 #include <coeffs/bigintmat.h> 2 2 #include "nforder.h" 3 3 #include <reporter/reporter.h> 4 #include "libpolys/coeffs/numbers.h"5 #include "libpolys/coeffs/coeffs.h"4 #include <coeffs/numbers.h> 5 #include <coeffs/coeffs.h> 6 6 #include "Singular/ipid.h" 7 7 #include "nforder_ideal.h" -
Singular/dyn_modules/Order/nforder_ideal.h
r80b6d36 rdd46a1 7 7 #define NFORDER_IDEAL_HPP 8 8 9 #include < libpolys/coeffs/bigintmat.h>9 #include <coeffs/bigintmat.h> 10 10 11 11 class nforder_ideal -
Singular/dyn_modules/Order/singular.cc
r80b6d36 rdd46a1 4 4 #include"Singular/ipid.h" // for SModulFunctions, leftv 5 5 #include"Singular/number2.h" // for SModulFunctions, leftv 6 #include "libpolys/coeffs/numbers.h"// nRegister, coeffs.h7 #include "libpolys/coeffs/coeffs.h"6 #include<coeffs/numbers.h> // nRegister, coeffs.h 7 #include <coeffs/coeffs.h> 8 8 #include"Singular/blackbox.h" // blackbox type 9 9 #include "nforder.h" 10 10 #include "nforder_elt.h" 11 11 #include "nforder_ideal.h" 12 #include "libpolys/coeffs/bigintmat.h"12 #include <coeffs/bigintmat.h> 13 13 14 14 #ifdef SINGULAR_4_1 -
Singular/dyn_modules/Order/temptest.cc
r80b6d36 rdd46a1 1 #include < libpolys/coeffs/bigintmat.h>1 #include <coeffs/bigintmat.h> 2 2 #include "temptest.h" 3 3 #include <reporter/reporter.h> 4 #include "libpolys/coeffs/numbers.h"5 #include "libpolys/coeffs/coeffs.h"4 #include <coeffs/numbers.h> 5 #include <coeffs/coeffs.h> 6 6 #include "Singular/ipid.h" 7 7 //#include "kernel/febase.h" -
Singular/dyn_modules/bigintm/bigintm.cc
r80b6d36 rdd46a1 7 7 #include <omalloc/omalloc.h> 8 8 #include <coeffs/coeffs.h> 9 #include <coeffs/longrat.h>10 9 11 10 #include <Singular/ipid.h> -
Singular/dyn_modules/gfanlib/bbcone.cc
r80b6d36 rdd46a1 2 2 3 3 #if HAVE_GFANLIB 4 5 #include <bbfan.h>6 #include <bbpolytope.h>7 4 8 5 #include <misc/intvec.h> 9 6 #include <misc/sirandom.h> 7 8 #include <coeffs/bigintmat.h> 10 9 #include <coeffs/longrat.h> 11 #include <coeffs/bigintmat.h>12 10 13 11 #include <Singular/ipid.h> … … 15 13 #include <Singular/ipshell.h> 16 14 #include <Singular/blackbox.h> 17 18 #include <sstream>19 15 20 16 // #include <omalloc/omalloc.h> … … 27 23 #include <gfanlib/gfanlib_q.h> 28 24 25 #include "bbfan.h" 26 #include "bbpolytope.h" 27 28 29 #include <sstream> 29 30 30 31 int coneID; -
Singular/dyn_modules/gfanlib/bbfan.cc
r80b6d36 rdd46a1 2 2 3 3 #if HAVE_GFANLIB 4 5 #include <misc/intvec.h> 6 #include <coeffs/coeffs.h> 7 #include <coeffs/bigintmat.h> 4 8 5 9 #include <Singular/ipid.h> 6 10 #include <Singular/ipshell.h> 7 11 #include <Singular/blackbox.h> 8 #include <misc/intvec.h> 9 #include <coeffs/longrat.h> 10 #include <coeffs/bigintmat.h> 11 12 #include <bbfan.h> 13 #include <bbcone.h> 14 #include <gfan.h> 12 13 #include "bbfan.h" 14 #include "bbcone.h" 15 #include "gfan.h" 15 16 #include <sstream> 16 17 … … 122 123 for (int c = 1; c <= cc; c++) 123 124 { 124 number temp1 = n lInit(1,NULL);125 number temp2 = n lSub(IMATELEM(*iv, r, c),temp1,coeffs_BIGINT);125 number temp1 = n_Init(1,coeffs_BIGINT); 126 number temp2 = n_Sub(IMATELEM(*iv, r, c),temp1,coeffs_BIGINT); 126 127 ivCopy->set(r,c,temp2); 127 n lDelete(&temp1,NULL);128 n lDelete(&temp2,NULL);128 n_Delete(&temp1,coeffs_BIGINT); 129 n_Delete(&temp2,coeffs_BIGINT); 129 130 } 130 131 gfan::ZMatrix* zm = bigintmatToZMatrix(ivCopy); -
Singular/dyn_modules/gfanlib/bbpolytope.cc
r80b6d36 rdd46a1 7 7 #include <Singular/blackbox.h> 8 8 #include <misc/intvec.h> 9 #include <coeffs/longrat.h>10 9 #include <coeffs/bigintmat.h> 11 10 -
Singular/extra.cc
r80b6d36 rdd46a1 47 47 #include <coeffs/mpr_complex.h> 48 48 #include "coeffs/AE.h" 49 #include "coeffs/OPAE.h"49 // #include "coeffs/OPAE.h" 50 50 #include "coeffs/AEp.h" 51 #include "coeffs/OPAEp.h"51 // #include "coeffs/OPAEp.h" 52 52 #include "coeffs/AEQ.h" 53 #include "coeffs/OPAEQ.h"53 // #include "coeffs/OPAEQ.h" 54 54 55 55 -
Singular/grammar.cc
r80b6d36 rdd46a1 106 106 #include <kernel/GBEngine/syz.h> 107 107 #include <Singular/lists.h> 108 #include <coeffs/longrat.h>109 108 #include <Singular/libparse.h> 110 109 #include <coeffs/bigintmat.h> -
Singular/grammar.y
r80b6d36 rdd46a1 42 42 #include <kernel/GBEngine/syz.h> 43 43 #include <Singular/lists.h> 44 #include <coeffs/longrat.h>45 44 #include <Singular/libparse.h> 46 45 #include <coeffs/bigintmat.h> -
Singular/iparith.cc
r80b6d36 rdd46a1 18 18 #include <coeffs/numbers.h> 19 19 20 #ifdef HAVE_RINGS21 #include <coeffs/rmodulon.h>22 #include <coeffs/rmodulo2m.h>23 #include <coeffs/rintegers.h>24 #endif25 20 26 21 #include <misc/options.h> -
Singular/ipassign.cc
r80b6d36 rdd46a1 25 25 #include <coeffs/coeffs.h> 26 26 #include <coeffs/numbers.h> 27 #include <coeffs/longrat.h>28 27 #include <coeffs/bigintmat.h> 29 28 -
Singular/ipconv.cc
r80b6d36 rdd46a1 22 22 #include <coeffs/bigintmat.h> 23 23 //#include <polys/ext_fields/longalg.h> 24 #ifdef HAVE_RINGS25 #include <coeffs/rmodulon.h>26 #include <coeffs/rmodulo2m.h>27 #include <coeffs/rintegers.h>28 #endif29 24 #include <polys/matpol.h> 30 25 #include <Singular/links/silink.h> -
Singular/ipid.cc
r80b6d36 rdd46a1 20 20 #include <coeffs/numbers.h> 21 21 #include <coeffs/bigintmat.h> 22 #include <coeffs/longrat.h>23 22 24 23 #include <polys/matpol.h> -
Singular/ipshell.cc
r80b6d36 rdd46a1 6 6 */ 7 7 8 9 10 8 #include <kernel/mod2.h> 9 10 #include <omalloc/omalloc.h> 11 12 #include <factory/factory.h> 13 11 14 #include <misc/auxiliary.h> 12 13 14 15 #include <misc/options.h> 15 16 #include <misc/mylimits.h> 16 17 #include <factory/factory.h>18 19 #include <Singular/maps_ip.h>20 #include <Singular/tok.h>21 #include <misc/options.h>22 #include <Singular/ipid.h>23 17 #include <misc/intvec.h> 24 #include <omalloc/omalloc.h> 18 19 #include <coeffs/numbers.h> 20 #include <coeffs/coeffs.h> 21 22 #include <coeffs/rmodulon.h> 23 #include <coeffs/longrat.h> 24 25 #include <polys/monomials/ring.h> 26 #include <polys/monomials/maps.h> 27 28 #include <polys/prCopy.h> 29 #include <polys/matpol.h> 30 31 #include <polys/weight.h> 32 #include <polys/clapsing.h> 33 34 35 #include <polys/ext_fields/algext.h> 36 #include <polys/ext_fields/transext.h> 37 25 38 #include <kernel/polys.h> 26 #include <coeffs/numbers.h>27 #include <polys/prCopy.h>28 39 #include <kernel/ideals.h> 29 #include <polys/matpol.h> 40 41 #include <kernel/numeric/mpr_base.h> 42 #include <kernel/numeric/mpr_numeric.h> 43 44 #include <kernel/GBEngine/syz.h> 30 45 #include <kernel/GBEngine/kstd1.h> 31 #include <polys/monomials/ring.h> 32 #include <Singular/subexpr.h> 33 #include <Singular/fevoices.h> 46 47 #include <kernel/combinatorics/stairc.h> 48 #include <kernel/combinatorics/hutil.h> 49 50 #include <kernel/spectrum/semic.h> 51 #include <kernel/spectrum/splist.h> 52 #include <kernel/spectrum/spectrum.h> 53 34 54 #include <kernel/oswrapper/feread.h> 35 #include <polys/monomials/maps.h> 36 #include <kernel/GBEngine/syz.h> 37 #include <coeffs/numbers.h> 38 //#include <polys/ext_fields/longalg.h> 55 39 56 #include <Singular/lists.h> 40 57 #include <Singular/attrib.h> 41 58 #include <Singular/ipconv.h> 42 59 #include <Singular/links/silink.h> 43 #include <kernel/combinatorics/stairc.h>44 #include <polys/weight.h>45 #include <kernel/spectrum/semic.h>46 #include <kernel/spectrum/splist.h>47 #include <kernel/spectrum/spectrum.h>48 ////// #include <coeffs/gnumpfl.h>49 //#include <kernel/mpr_base.h>50 ////// #include <coeffs/ffields.h>51 #include <polys/clapsing.h>52 #include <kernel/combinatorics/hutil.h>53 #include <polys/monomials/ring.h>54 60 #include <Singular/ipshell.h> 55 #include <polys/ext_fields/algext.h> 56 #include <coeffs/mpr_complex.h> 57 #include <coeffs/longrat.h> 58 #include <coeffs/rmodulon.h> 59 60 #include <kernel/numeric/mpr_base.h> 61 #include <kernel/numeric/mpr_numeric.h> 61 #include <Singular/maps_ip.h> 62 #include <Singular/tok.h> 63 #include <Singular/ipid.h> 64 #include <Singular/subexpr.h> 65 #include <Singular/fevoices.h> 62 66 63 67 #include <math.h> 64 68 #include <ctype.h> 65 66 #include <polys/ext_fields/algext.h>67 #include <polys/ext_fields/transext.h>68 69 69 70 // define this if you want to use the fast_map routine for mapping ideals … … 76 77 #ifdef SINGULAR_4_1 77 78 #include <Singular/number2.h> 78 #include < libpolys/coeffs/bigintmat.h>79 #include <coeffs/bigintmat.h> 79 80 #endif 80 81 leftv iiCurrArgs=NULL; … … 1307 1308 break; 1308 1309 case BIGINT_CMD: 1309 n_Delete(&IDNUMBER(pp),c urrRing->cf);1310 n_Delete(&IDNUMBER(pp),coeffs_BIGINT); 1310 1311 break; 1311 1312 case MAP_CMD: … … 1806 1807 LL->Init(2); 1807 1808 LL->m[0].rtyp=BIGINT_CMD; 1808 LL->m[0].data=nlMapGMP((number) R->cf->modBase, R->cf, R->cf); 1809 LL->m[0].data=nlMapGMP((number) R->cf->modBase, R->cf, R->cf); // TODO: what is this?? // extern number nlMapGMP(number from, const coeffs src, const coeffs dst); // FIXME: replace with n_InitMPZ(R->cf->modBase, coeffs_BIGINT); ? 1809 1810 LL->m[1].rtyp=INT_CMD; 1810 1811 LL->m[1].data=(void *) R->cf->modExponent; … … 2090 2091 if ((LL->nr >= 0) && LL->m[0].rtyp == BIGINT_CMD) 2091 2092 { 2092 number tmp= (number) LL->m[0].data; 2093 n_MPZ (modBase, tmp, coeffs_BIGINT); 2093 number tmp= (number) LL->m[0].data; // .CopyD()? see below 2094 n_MPZ (modBase, tmp, coeffs_BIGINT); // FIXME: deletes tmp: previous CopyD() should NOT be necessary! 2094 2095 } 2095 2096 else if (LL->nr >= 0 && LL->m[0].rtyp == INT_CMD) … … 5266 5267 else if ((pn->name != NULL) && (strcmp(pn->name, "integer") == 0)) 5267 5268 { 5269 // TODO: change to use coeffs_BIGINT!? 5268 5270 modBase = (mpz_ptr) omAlloc(sizeof(mpz_t)); 5269 5271 mpz_init_set_si(modBase, 0); … … 5287 5289 else if (pn->next->Typ()==BIGINT_CMD) 5288 5290 { 5289 number p=(number)pn->next->CopyD(); 5290 nlGMP(p,(number)modBase,coeffs_BIGINT); 5291 n lDelete(&p,coeffs_BIGINT);5291 number p=(number)pn->next->CopyD(); // FIXME: why CopyD() here if nlGMP should not overtake p!? 5292 nlGMP(p,(number)modBase,coeffs_BIGINT); // TODO? // extern void nlGMP(number &i, number n, const coeffs r); // FIXME: n_MPZ( modBase, p, coeffs_BIGINT); ? 5293 n_Delete(&p,coeffs_BIGINT); 5292 5294 } 5293 5295 } -
Singular/libsingular.h
r80b6d36 rdd46a1 8 8 #include <kernel/polys.h> 9 9 #include <coeffs/numbers.h> 10 #include <coeffs/longrat.h>11 10 #include <kernel/oswrapper/feread.h> 12 11 #include <polys/monomials/ring.h> -
Singular/links/ssiLink.cc
r80b6d36 rdd46a1 6 6 * Purpose: declaration of sl_link routines for ssi 7 7 ***************************************************************/ 8 #define TRANSEXT_PRIVATES 1 /* allow access to transext internals */ 9 8 10 #include <kernel/mod2.h> 9 11 … … 12 14 #include <misc/intvec.h> 13 15 #include <misc/options.h> 16 14 17 #include <reporter/si_signals.h> 15 18 #include <reporter/s_buff.h> 19 20 #include <coeffs/bigintmat.h> 16 21 #include <coeffs/longrat.h> 17 #include <coeffs/bigintmat.h> 18 19 #define TRANSEXT_PRIVATES 1 // allow access to transext internals 22 20 23 #include <polys/monomials/ring.h> 21 #include <polys/matpol.h>22 #include <polys/simpleideals.h>23 24 #include <polys/monomials/p_polys.h> 24 25 #include <polys/ext_fields/transext.h> 26 #include <polys/simpleideals.h> 27 #include <polys/matpol.h> 25 28 26 29 #include <kernel/oswrapper/timer.h> 30 #include <kernel/oswrapper/feread.h> 31 #include <kernel/oswrapper/rlimit.h> 27 32 28 33 #include <Singular/tok.h> 29 34 #include <Singular/ipid.h> 30 35 #include <Singular/ipshell.h> 31 #include <kernel/oswrapper/rlimit.h>32 36 #include <Singular/subexpr.h> 33 37 #include <Singular/links/silink.h> … … 35 39 #include <Singular/lists.h> 36 40 #include <Singular/blackbox.h> 37 #include <kernel/oswrapper/feread.h>38 41 #include <Singular/links/ssiLink.h> 39 42 -
Singular/misc_ip.cc
r80b6d36 rdd46a1 40 40 #include "mod_lib.h" 41 41 42 // the following 2 inline functions are just convenience shortcuts for Frank's code: 43 static inline void number2mpz(number n, mpz_t m){ n_MPZ(m, n, coeffs_BIGINT); } 44 static inline number mpz2number(mpz_t m){ return n_InitMPZ(m, coeffs_BIGINT); } 42 static FORCE_INLINE void number2mpz(number n, mpz_t m){ number2mpz(n, coeffs_BIGINT, m); } 43 static FORCE_INLINE number mpz2number(mpz_t m){ return mpz2number(m, coeffs_BIGINT); } 45 44 46 45 -
Singular/number2.cc
r80b6d36 rdd46a1 2 2 3 3 #ifdef SINGULAR_4_1 4 #include"reporter/reporter.h" // for Print, WerrorS 5 #include"Singular/ipid.h" // for SModulFunctions, leftv 6 #include"coeffs/numbers.h" // nRegister, coeffs.h 7 #include"coeffs/rmodulon.h" // ZnmInfo 8 #include"coeffs/bigintmat.h" // bigintmat 9 #include"coeffs/longrat.h" // nlGMP 10 #include"Singular/blackbox.h" // blackbox type 11 #include"Singular/ipshell.h" // IsPrime 4 #include <reporter/reporter.h> // for Print, WerrorS 5 #include <coeffs/numbers.h> // nRegister, coeffs.h 6 #include <coeffs/rmodulon.h> // ZnmInfo 7 #include <coeffs/bigintmat.h> // bigintmat 8 9 #include <Singular/blackbox.h> // blackbox type 10 #include <Singular/ipshell.h> // IsPrime 11 12 #include <Singular/ipid.h> // for SModulFunctions, leftv 12 13 13 14 #include <Singular/number2.h> … … 61 62 { 62 63 ZnmInfo info; 63 number modBase= (number) omAlloc(sizeof(mpz_t)); 64 nlGMP(i2,modBase,coeffs_BIGINT); 64 number modBase= (number) omAlloc(sizeof(mpz_t)); 65 nlGMP(i2,modBase,coeffs_BIGINT); // FIXME? TODO? // extern void nlGMP(number &i, number n, const coeffs r); // to be replaced with n_MPZ(modBase,i2,coeffs_BIGINT); // ? 65 66 info.base= (mpz_ptr)modBase; 66 67 info.exp= 1; -
Singular/number2.h
r80b6d36 rdd46a1 6 6 #ifdef SINGULAR_4_1 7 7 #include <omalloc/omalloc.h> 8 #include < libpolys/coeffs/coeffs.h>8 #include <coeffs/coeffs.h> 9 9 #include <kernel/structs.h> 10 10 struct snumber2; -
Singular/subexpr.cc
r80b6d36 rdd46a1 13 13 #include <misc/options.h> 14 14 15 16 #include <coeffs/ffields.h>17 15 #include <coeffs/numbers.h> 18 16 #include <coeffs/bigintmat.h> 17 18 #include <coeffs/ffields.h> // nfShowMipo // minpoly printing... 19 19 20 20 #include <polys/monomials/maps.h> 21 21 #include <polys/matpol.h> 22 22 #include <polys/monomials/ring.h> 23 24 // #include <coeffs/longrat.h> 25 23 26 #include <kernel/polys.h> 24 25 #include <coeffs/longrat.h>26 // #include <coeffs/longrat.h>27 28 27 #include <kernel/ideals.h> 29 28 #include <kernel/GBEngine/kstd1.h> 29 #include <kernel/GBEngine/syz.h> 30 30 #include <kernel/oswrapper/timer.h> 31 #include <kernel/GBEngine/syz.h>32 31 33 32 #include <Singular/tok.h> -
Singular/walk.cc
r80b6d36 rdd46a1 42 42 #include <Singular/ipshell.h> 43 43 #include <Singular/ipconv.h> 44 #include <coeffs/ffields.h>45 44 #include <coeffs/coeffs.h> 46 45 #include <Singular/subexpr.h> 47 #include <polys/templates/p_Procs.h>48 46 49 47 #include <polys/monomials/maps.h> -
kernel/GBEngine/tgb.cc
r80b6d36 rdd46a1 25 25 #include <polys/nc/sca.h> 26 26 #include <polys/prCopy.h> 27 #include <coeffs/longrat.h> 28 #include <coeffs/ modulop.h>27 28 #include <coeffs/longrat.h> // nlQlogSize 29 29 30 30 #include <stdlib.h> -
kernel/GBEngine/tgb_internal.h
r80b6d36 rdd46a1 53 53 #include <stdlib.h> 54 54 55 #include <misc/options.h> 56 57 #include <coeffs/modulop.h> 58 55 59 #include <polys/monomials/p_polys.h> 60 #include <polys/monomials/ring.h> 61 #include <polys/kbuckets.h> 56 62 57 63 #include <kernel/ideals.h> 58 #include <polys/monomials/ring.h>59 #include <misc/options.h>60 64 #include <kernel/polys.h> 65 61 66 #include <kernel/GBEngine/kutil.h> 62 67 #include <kernel/GBEngine/kInline.h> 63 68 #include <kernel/GBEngine/kstd1.h> 64 #include <polys/kbuckets.h> 65 #include <coeffs/modulop.h> 69 70 71 #if 1 72 73 #define npInit n_Init 74 #define npNeg n_InpNeg 75 #define npInvers n_Invers 76 #define npMult n_Mult 77 #define npIsOne n_IsOne 78 #define npIsZero n_IsZero 79 80 #else 81 #error Please do NOT call internal functions directly! 82 #endif 83 66 84 67 85 class PolySimple … … 925 943 assume(bpos<256); 926 944 assume(!(npIsZero((number)(long) buffer[bpos],currRing->cf))); 927 temp_array[idx]=F4mat_to_number_type(npAddM((number)(long) temp_array[idx], (number)(long) buffer[bpos++],currRing->cf));945 STATISTIC(n_Add); temp_array[idx]=F4mat_to_number_type(npAddM((number)(long) temp_array[idx], (number)(long) buffer[bpos++],currRing->cf)); 928 946 assume(idx<temp_size); 929 947 } … … 971 989 assume(bpos<256); 972 990 //assume(!(npIsZero((number) buffer[bpos]))); 973 temp_array[i]=F4mat_to_number_type(npAddM((number)(long) temp_array[i], (number)(long) buffer[bpos++],currRing->cf));991 STATISTIC(n_Add); temp_array[i]=F4mat_to_number_type(npAddM((number)(long) temp_array[i], (number)(long) buffer[bpos++],currRing->cf)); 974 992 assume(i<temp_size); 975 993 } … … 996 1014 for(i=0;i<len;i++) 997 1015 { 998 temp_array[i]=F4mat_to_number_type(npAddM((number)(long) temp_array[i], (number)(long) row[i],currRing->cf));1016 STATISTIC(n_Add); temp_array[i]=F4mat_to_number_type(npAddM((number)(long) temp_array[i], (number)(long) row[i],currRing->cf)); 999 1017 assume(i<temp_size); 1000 1018 } … … 1021 1039 { 1022 1040 1023 temp_array[i]=F4mat_to_number_type(npSubM((number)(long) temp_array[i], (number)(long) row[i],currRing->cf));1041 STATISTIC(n_Sub); temp_array[i]=F4mat_to_number_type(npSubM((number)(long) temp_array[i], (number)(long) row[i],currRing->cf)); 1024 1042 assume(i<temp_size); 1025 1043 } … … 1041 1059 { 1042 1060 int idx=idx_array[j]; 1043 temp_array[idx]=F4mat_to_number_type( (number_type)(long)npAddM((number) (long)temp_array[idx],(number)(long) coef_array[j],currRing->cf));1061 STATISTIC(n_Add); temp_array[idx]=F4mat_to_number_type( (number_type)(long)npAddM((number) (long)temp_array[idx],(number)(long) coef_array[j],currRing->cf)); 1044 1062 assume(idx<temp_size); 1045 1063 } … … 1059 1077 { 1060 1078 int idx=idx_array[j]; 1061 temp_array[idx]=F4mat_to_number_type( (number_type)(long) npSubM((number) (long)temp_array[idx],(number)(long) coef_array[j],currRing->cf));1079 STATISTIC(n_Sub); temp_array[idx]=F4mat_to_number_type( (number_type)(long) npSubM((number) (long)temp_array[idx],(number)(long) coef_array[j],currRing->cf)); 1062 1080 assume(idx<temp_size); 1063 1081 } … … 1122 1140 if (red.ref->value_len==NoroCache<number_type>::backLinkCode) 1123 1141 { 1124 temp_array[red.ref->term_index]=F4mat_to_number_type( npAddM((number)(long) temp_array[red.ref->term_index],red.coef,currRing->cf));1142 STATISTIC(n_Add); temp_array[red.ref->term_index]=F4mat_to_number_type( npAddM((number)(long) temp_array[red.ref->term_index],red.coef,currRing->cf)); 1125 1143 } 1126 1144 else … … 1170 1188 assume(coef_array[j]!=0); 1171 1189 CoefIdx<number_type> ci; 1172 ci.coef=F4mat_to_number_type(npMultM((number)(long) coef,(number)(long) coef_array[j],currRing->cf));1190 STATISTIC(n_Mult); ci.coef=F4mat_to_number_type(npMultM((number)(long) coef,(number)(long) coef_array[j],currRing->cf)); 1173 1191 ci.idx=idx_array[j]; 1174 1192 pairs[pos++]=ci; … … 1185 1203 assume(coef_array[j]!=0); 1186 1204 CoefIdx<number_type> ci; 1187 ci.coef=F4mat_to_number_type(npMultM((number)(long) coef,(number)(long) coef_array[j],currRing->cf));1205 STATISTIC(n_Mult); ci.coef=F4mat_to_number_type(npMultM((number)(long) coef,(number)(long) coef_array[j],currRing->cf)); 1188 1206 assume(ci.coef!=0); 1189 1207 ci.idx=j; … … 1220 1238 assume(coef_array[j]!=0); 1221 1239 CoefIdx<number_type> ci; 1222 ci.coef=F4mat_to_number_type(npNegM((number)(long) coef_array[j],currRing->cf));1240 STATISTIC(n_InpNeg); ci.coef=F4mat_to_number_type(npNegM((number)(long) coef_array[j],currRing->cf)); // FIXME: inplace negation! // TODO: check if this is not a bug!? 1223 1241 assume(ci.coef!=0); 1224 1242 ci.idx=j; … … 1247 1265 assume(coef_array[j]!=0); 1248 1266 CoefIdx<number_type> ci; 1249 ci.coef=F4mat_to_number_type(npNegM((number)(unsigned long)coef_array[j],currRing->cf));1267 STATISTIC(n_InpNeg); ci.coef=F4mat_to_number_type(npNegM((number)(unsigned long)coef_array[j],currRing->cf)); // FIXME: inplace negation! // TODO: check if this is not a bug!? 1250 1268 ci.idx=idx_array[j]; 1251 1269 pairs[pos++]=ci; … … 1355 1373 else 1356 1374 { 1357 pairs[act].coef=F4mat_to_number_type(npAddM((number)(long)pairs[act].coef,(number)(long)pairs[i].coef,currRing->cf));1375 STATISTIC(n_Add); pairs[act].coef=F4mat_to_number_type(npAddM((number)(long)pairs[act].coef,(number)(long)pairs[i].coef,currRing->cf)); 1358 1376 } 1359 1377 } … … 1552 1570 { 1553 1571 if (row_array[i]!=zero) 1572 { STATISTIC(n_Sub); 1554 1573 other_row_array[i]=F4mat_to_number_type(npSubM((number)(long) other_row_array[i], (number)(long) row_array[i],currRing->cf)); 1574 } 1575 1555 1576 } 1556 1577 } … … 1561 1582 { 1562 1583 if (row_array[i]!=zero) 1563 other_row_array[i]=F4mat_to_number_type(npAddM(npMult(coef2,(number)(long) row_array[i],currRing->cf),(number)(long) other_row_array[i],currRing->cf)); 1584 { STATISTIC(n_Add); 1585 other_row_array[i]=F4mat_to_number_type(npAddM(npMult(coef2,(number)(long) row_array[i],currRing->cf),(number)(long) other_row_array[i],currRing->cf)); 1586 } 1587 1564 1588 } 1565 1589 } … … 1709 1733 { 1710 1734 if (row_array[i]!=zero) 1735 { 1736 STATISTIC(n_Add); 1711 1737 other_row_array[i]=F4mat_to_number_type(npAddM(npMult(coef,(number)(long)row_array[i],currRing->cf),(number)(long)other_row_array[i],currRing->cf)); 1738 } 1712 1739 } 1713 1740 updateLastReducibleIndex(other_row,r); -
kernel/linear_algebra/interpolation.cc
r80b6d36 rdd46a1 3 3 ****************************************/ 4 4 5 6 7 8 5 #include <kernel/mod2.h> 9 6 … … 13 10 #include <misc/intvec.h> 14 11 15 #include <coeffs/longrat.h> 12 #include <coeffs/longrat.h> // snumber ... 16 13 17 14 #include <polys/monomials/ring.h> … … 1754 1751 mpz_init_set(n->z,temp->polycoef[a]); 1755 1752 n->s=3; 1756 n lNormalize(n, currRing->cf);1753 n_Normalize(n, currRing->cf); 1757 1754 p=pNSet(n); //a monomial 1758 1755 for (j=0;j<variables;j++) pSetExp(p,j+1,temp->polyexp[a][j]); -
kernel/tmult.cc
r80b6d36 rdd46a1 12 12 #include <kernel/numbers.h> 13 13 #include <kernel/polys.h> 14 #include <coeffs/longrat.h>15 14 #ifdef SI_THREADS 16 15 #include <pthread.h> -
libpolys/coeffs/AE.cc
r80b6d36 rdd46a1 1 #include <gmp.h> 1 #include <misc/auxiliary.h> 2 #include <omalloc/omalloc.h> 3 4 #include "AE.h" 5 2 6 #include <math.h> 3 #include "AE.h"4 5 7 6 8 #ifdef SINGULAR_4_1 -
libpolys/coeffs/AE.h
r80b6d36 rdd46a1 2 2 #define AE_H 3 3 4 5 #include <gmp.h>6 #include <omalloc/omalloc.h>7 4 #include <misc/auxiliary.h> 5 #include "si_gmp.h" 8 6 9 7 #ifdef SINGULAR_4_1 10 11 8 12 9 class int_poly // Klasse von int_polynomen mit Typ (Grad, Koeffizienten ganzzahlig) -
libpolys/coeffs/AEQ.cc
r80b6d36 rdd46a1 1 #include <misc/auxiliary.h> 2 #include <omalloc/omalloc.h> 3 4 #include "AEQ.h" 5 1 6 #include <stdio.h> 2 #include <gmp.h>3 7 #include <math.h> 4 #include "AEQ.h"5 6 7 8 #ifdef SINGULAR_4_1 8 9 -
libpolys/coeffs/AEQ.h
r80b6d36 rdd46a1 2 2 #define QPOLY 3 3 4 5 #include <gmp.h>6 #include <omalloc/omalloc.h>7 4 #include <misc/auxiliary.h> 5 #include "si_gmp.h" 8 6 9 7 #ifdef SINGULAR_4_1 -
libpolys/coeffs/AEp.cc
r80b6d36 rdd46a1 1 #include <misc/auxiliary.h> 2 #include <omalloc/omalloc.h> 3 4 #include "AEp.h" 5 1 6 #include <stdio.h> 2 #include <gmp.h>3 7 #include <math.h> 4 #include "AEp.h"5 6 7 8 #ifdef SINGULAR_4_1 8 9 -
libpolys/coeffs/AEp.h
r80b6d36 rdd46a1 2 2 #define AEP_H 3 3 4 5 #include <gmp.h>6 #include <omalloc/omalloc.h>7 4 #include <misc/auxiliary.h> 5 #include "si_gmp.h" 8 6 9 7 #ifdef SINGULAR_4_1 10 11 12 8 13 9 class p_poly // Klasse von p_polynomen mit Typ (Grad, Koeffizienten ganzzahlig) -
libpolys/coeffs/OPAE.cc
r80b6d36 rdd46a1 8 8 9 9 #include <misc/auxiliary.h> 10 #include <omalloc/omalloc.h> 11 #include <factory/factory.h> 12 #include <misc/mylimits.h> 13 #include <reporter/reporter.h> 14 15 #include "coeffs.h" 16 #include "numbers.h" 17 #include "mpr_complex.h" 18 19 #include "OPAE.h" 20 #include "AE.h" 21 22 #include <string.h> 10 23 11 24 #ifdef SINGULAR_4_1 12 25 13 #include <factory/factory.h> 14 15 #include <string.h> 16 #include <omalloc/omalloc.h> 17 #include <coeffs/coeffs.h> 18 #include <reporter/reporter.h> 19 #include <coeffs/numbers.h> 20 #include <coeffs/longrat.h> 21 #include <coeffs/modulop.h> 22 #include <coeffs/mpr_complex.h> 23 #include <misc/mylimits.h> 24 #include <coeffs/OPAE.h> 25 #include <coeffs/AE.h> 26 BOOLEAN nAECoeffIsEqual (number a, number b, const coeffs r); 27 number nAEMult (number a, number b, const coeffs r); 28 number nAESub (number a, number b, const coeffs r); 29 number nAEAdd (number a, number b, const coeffs r); 30 number nAEDiv (number a, number b, const coeffs r); 31 number nAEIntMod (number a, number b, const coeffs r);// Hir wollte wir was gucken 32 number nAEExactDiv (number a, number b, const coeffs r); 33 number nAEInit (long i, const coeffs r); 34 number nAEInitMPZ (mpz_t m, const coeffs r); //nachgucken/fragen 35 int nAESize (number a, const coeffs r);/// 36 int nAEInt (number &a, const coeffs r); 37 number nAEMPZ (number a, const coeffs r); //nachgucken/fragen 38 number nAENeg (number c, const coeffs r); 39 number nAECopy (number a, number b, const coeffs r); // nachgicken 40 number nAERePart (number a, number b, const coeffs r); // nachgicken 41 number nAEImPart (number a, number b, const coeffs r); // nachgicken 42 43 void nAEWriteLong (number &a, const coeffs r);// 44 void nAEWriteShort (number &a, const coeffs r);// 45 46 47 const char * nAERead (const char *s, number *a, const coeffs r); 48 number nAENormalize (number a, number b, const coeffs r);// 49 BOOLEAN nAEGreater (number a, number b, const coeffs r);// 50 BOOLEAN nAEEqual (number a, number b, const coeffs r); 51 BOOLEAN nAEIsZero (number a, const coeffs r); 52 BOOLEAN nAEIsOne (number a, const coeffs r); 53 BOOLEAN nAEIsMOne (number a, const coeffs r); 54 BOOLEAN nAEGreaterZero (number a, number b, const coeffs r); 55 void nAEPower (number a, int i, number * result, const coeffs r); 56 number nAEGetDenom (number &a, const coeffs r);// 57 number nAEGetNumerator (number &a, const coeffs r);// 58 number nAEGcd (number a, number b, const coeffs r); 59 number nAELcm (number a, number b, const coeffs r); 60 61 void nAEDelete (number *a, const coeffs r);// 62 number nAESetMap (number a, const coeffs r);// 63 void nAEInpMult (number &a ,number b, const coeffs r);// 64 void nAECoeffWrite (const coeffs r, BOOLEAN details);// 65 66 BOOLEAN nAEClearContent (number a, const coeffs r);// 67 BOOLEAN nAEClearDenominators (number a, const coeffs r);// 26 68 27 69 -
libpolys/coeffs/OPAE.h
r80b6d36 rdd46a1 5 5 ****************************************/ 6 6 7 #include <coeffs/coeffs.h>8 7 #include <misc/auxiliary.h> 9 8 9 struct n_Procs_s; typedef struct n_Procs_s *coeffs; 10 struct snumber; typedef struct snumber * number; 11 10 12 #ifdef SINGULAR_4_1 11 12 13 13 BOOLEAN n_AEInitChar(coeffs , void *); 14 BOOLEAN nAECoeffIsEqual (number a, number b, const coeffs r); 15 number nAEMult (number a, number b, const coeffs r); 16 number nAESub (number a, number b, const coeffs r); 17 number nAEAdd (number a, number b, const coeffs r); 18 number nAEDiv (number a, number b, const coeffs r); 19 number nAEIntMod (number a, number b, const coeffs r);// Hir wollte wir was gucken 20 number nAEExactDiv (number a, number b, const coeffs r); 21 number nAEInit (long i, const coeffs r); 22 number nAEInitMPZ (mpz_t m, const coeffs r); //nachgucken/fragen 23 int nAESize (number a, const coeffs r);/// 24 int nAEInt (number &a, const coeffs r); 25 number nAEMPZ (number a, const coeffs r); //nachgucken/fragen 26 number nAENeg (number c, const coeffs r); 27 number nAECopy (number a, number b, const coeffs r); // nachgicken 28 number nAERePart (number a, number b, const coeffs r); // nachgicken 29 number nAEImPart (number a, number b, const coeffs r); // nachgicken 30 31 void nAEWriteLong (number &a, const coeffs r);// 32 void nAEWriteShort (number &a, const coeffs r);// 33 34 35 const char * nAERead (const char *s, number *a, const coeffs r); 36 number nAENormalize (number a, number b, const coeffs r);// 37 BOOLEAN nAEGreater (number a, number b, const coeffs r);// 38 BOOLEAN nAEEqual (number a, number b, const coeffs r); 39 BOOLEAN nAEIsZero (number a, const coeffs r); 40 BOOLEAN nAEIsOne (number a, const coeffs r); 41 BOOLEAN nAEIsMOne (number a, const coeffs r); 42 BOOLEAN nAEGreaterZero (number a, number b, const coeffs r); 43 void nAEPower (number a, int i, number * result, const coeffs r); 44 number nAEGetDenom (number &a, const coeffs r);// 45 number nAEGetNumerator (number &a, const coeffs r);// 46 number nAEGcd (number a, number b, const coeffs r); 47 number nAELcm (number a, number b, const coeffs r); 48 49 void nAEDelete (number *a, const coeffs r);// 50 number nAESetMap (number a, const coeffs r);// 51 void nAEInpMult (number &a ,number b, const coeffs r);// 52 void nAECoeffWrite (const coeffs r, BOOLEAN details);// 53 54 BOOLEAN nAEClearContent (number a, const coeffs r);// 55 BOOLEAN nAEClearDenominators (number a, const coeffs r);// 14 #endif 56 15 57 16 #endif 58 #endif -
libpolys/coeffs/OPAEQ.cc
r80b6d36 rdd46a1 18 18 #include <reporter/reporter.h> 19 19 #include <coeffs/numbers.h> 20 #include <coeffs/longrat.h>21 #include <coeffs/modulop.h>22 20 #include <coeffs/mpr_complex.h> 23 21 #include <misc/mylimits.h> 24 #include <coeffs/OPAEQ.h>25 22 #include <coeffs/AEQ.h> 26 23 24 25 BOOLEAN nAEQCoeffIsEqual (number a, number b, const coeffs r); 26 number nAEQMult (number a, number b, const coeffs r); 27 number nAEQSub (number a, number b, const coeffs r); 28 number nAEQAdd (number a, number b, const coeffs r); 29 number nAEQDiv (number a, number b, const coeffs r); 30 number nAEQIntMod (number a, number b, const coeffs r);// Hir wollte wir was gucken 31 number nAEQExactDiv (number a, number b, const coeffs r); 32 number nAEQInit (long i, const coeffs r); 33 number nAEQInitMPZ (mpz_t m, const coeffs r); //nachgucken/fragen 34 int nAEQSize (number a, const coeffs r);/// 35 int nAEQInt (number &a, const coeffs r); 36 number nAEQMPZ (number a, const coeffs r); //nachgucken/fragen 37 number nAEQNeg (number c, const coeffs r); 38 number nAEQCopy (number a, number b, const coeffs r); // nachgicken 39 number nAEQRePart (number a, number b, const coeffs r); // nachgicken 40 number nAEQImPart (number a, number b, const coeffs r); // nachgicken 41 42 void nAEQWriteLong (number &a, const coeffs r);// 43 void nAEQWriteShort (number &a, const coeffs r);// 44 45 46 const char * nAEQRead (const char *s, number *a, const coeffs r); 47 number nAEQNormalize (number a, number b, const coeffs r);// 48 BOOLEAN nAEQGreater (number a, number b, const coeffs r);// 49 BOOLEAN nAEQEqual (number a, number b, const coeffs r); 50 BOOLEAN nAEQIsZero (number a, const coeffs r); 51 BOOLEAN nAEQIsOne (number a, const coeffs r); 52 BOOLEAN nAEQIsMOne (number a, const coeffs r); 53 BOOLEAN nAEQGreaterZero (number a, number b, const coeffs r); 54 void nAEQPower (number a, int i, number * result, const coeffs r); 55 number nAEQGetDenom (number &a, const coeffs r);// 56 number nAEQGetNumerator (number &a, const coeffs r);// 57 number nAEQGcd (number a, number b, const coeffs r); 58 number nAEQLcm (number a, number b, const coeffs r); 59 60 void nAEQDelete (number *a, const coeffs r);// 61 number nAEQSetMap (number a, const coeffs r);// 62 void nAEQInpMult (number &a ,number b, const coeffs r);// 63 void nAEQCoeffWrite (const coeffs r, BOOLEAN details);// 64 65 BOOLEAN nAEQClearContent (number a, const coeffs r);// 66 BOOLEAN nAEQClearDenominators (number a, const coeffs r);// 27 67 28 68 … … 332 372 r->cfDelete= nAEQDelete; 333 373 334 extern nMapFunc npSetMap(const coeffs src, const coeffs dst); // FIXME: BUG? 335 r->cfSetMap = npSetMap; // WHY??? // TODO: this seems to be a bug! 374 r->cfSetMap = npSetMap; // extern nMapFunc npSetMap(const coeffs src, const coeffs dst); // FIXME: WHY??? // TODO: this seems to be a bug! 336 375 337 376 r->cfInpMult=nAEQInpMult; //???? -
libpolys/coeffs/OPAEQ.h
r80b6d36 rdd46a1 4 4 * Computer Algebra System SINGULAR * 5 5 ****************************************/ 6 #include <misc/auxiliary.h> 6 7 7 #include <coeffs/coeffs.h> 8 struct n_Procs_s; typedef struct n_Procs_s *coeffs; 9 struct snumber; typedef struct snumber * number; 8 10 9 11 #ifdef SINGULAR_4_1 10 11 12 12 BOOLEAN n_QAEInitChar(coeffs , void *); 13 BOOLEAN nAEQCoeffIsEqual (number a, number b, const coeffs r); 14 number nAEQMult (number a, number b, const coeffs r); 15 number nAEQSub (number a, number b, const coeffs r); 16 number nAEQAdd (number a, number b, const coeffs r); 17 number nAEQDiv (number a, number b, const coeffs r); 18 number nAEQIntMod (number a, number b, const coeffs r);// Hir wollte wir was gucken 19 number nAEQExactDiv (number a, number b, const coeffs r); 20 number nAEQInit (long i, const coeffs r); 21 number nAEQInitMPZ (mpz_t m, const coeffs r); //nachgucken/fragen 22 int nAEQSize (number a, const coeffs r);/// 23 int nAEQInt (number &a, const coeffs r); 24 number nAEQMPZ (number a, const coeffs r); //nachgucken/fragen 25 number nAEQNeg (number c, const coeffs r); 26 number nAEQCopy (number a, number b, const coeffs r); // nachgicken 27 number nAEQRePart (number a, number b, const coeffs r); // nachgicken 28 number nAEQImPart (number a, number b, const coeffs r); // nachgicken 29 30 void nAEQWriteLong (number &a, const coeffs r);// 31 void nAEQWriteShort (number &a, const coeffs r);// 32 33 34 const char * nAEQRead (const char *s, number *a, const coeffs r); 35 number nAEQNormalize (number a, number b, const coeffs r);// 36 BOOLEAN nAEQGreater (number a, number b, const coeffs r);// 37 BOOLEAN nAEQEqual (number a, number b, const coeffs r); 38 BOOLEAN nAEQIsZero (number a, const coeffs r); 39 BOOLEAN nAEQIsOne (number a, const coeffs r); 40 BOOLEAN nAEQIsMOne (number a, const coeffs r); 41 BOOLEAN nAEQGreaterZero (number a, number b, const coeffs r); 42 void nAEQPower (number a, int i, number * result, const coeffs r); 43 number nAEQGetDenom (number &a, const coeffs r);// 44 number nAEQGetNumerator (number &a, const coeffs r);// 45 number nAEQGcd (number a, number b, const coeffs r); 46 number nAEQLcm (number a, number b, const coeffs r); 47 48 void nAEQDelete (number *a, const coeffs r);// 49 number nAEQSetMap (number a, const coeffs r);// 50 void nAEQInpMult (number &a ,number b, const coeffs r);// 51 void nAEQCoeffWrite (const coeffs r, BOOLEAN details);// 52 53 BOOLEAN nAEQClearContent (number a, const coeffs r);// 54 BOOLEAN nAEQClearDenominators (number a, const coeffs r);// 13 #endif 55 14 56 15 #endif 57 #endif -
libpolys/coeffs/OPAEp.cc
r80b6d36 rdd46a1 8 8 9 9 #include <misc/auxiliary.h> 10 #include <omalloc/omalloc.h> 10 11 11 12 #ifdef SINGULAR_4_1 … … 13 14 #include <factory/factory.h> 14 15 16 #include <misc/mylimits.h> 17 18 #include <reporter/reporter.h> 19 20 #include "coeffs.h" 21 #include "numbers.h" 22 #include "mpr_complex.h" 23 #include "OPAEp.h" 24 #include "AEp.h" 25 15 26 #include <string.h> 16 #include <omalloc/omalloc.h> 17 #include <coeffs/coeffs.h> 18 #include <reporter/reporter.h> 19 #include <coeffs/numbers.h> 20 #include <coeffs/longrat.h> 21 #include <coeffs/modulop.h> 22 #include <coeffs/mpr_complex.h> 23 #include <misc/mylimits.h> 24 #include <coeffs/OPAEp.h> 25 #include <coeffs/AEp.h> 26 27 28 27 28 BOOLEAN nAEpCoeffIsEqual (number a, number b, const coeffs r); 29 number nAEpMult (number a, number b, const coeffs r); 30 number nAEpSub (number a, number b, const coeffs r); 31 number nAEpAdd (number a, number b, const coeffs r); 32 number nAEpDiv (number a, number b, const coeffs r); 33 number nAEpIntMod (number a, number b, const coeffs r);// Hir wollte wir was gucken 34 number nAEpExactDiv (number a, number b, const coeffs r); 35 number nAEpInit (long i, const coeffs r); 36 number nAEpInitMPZ (mpz_t m, const coeffs r); //nachgucken/fragen 37 int nAEpSize (number a, const coeffs r);/// 38 int nAEpInt (number &a, const coeffs r); 39 number nAEpMPZ (number a, const coeffs r); //nachgucken/fragen 40 number nAEpNeg (number c, const coeffs r); 41 number nAEpCopy (number a, number b, const coeffs r); // nachgicken 42 number nAEpRePart (number a, number b, const coeffs r); // nachgicken 43 number nAEpImPart (number a, number b, const coeffs r); // nachgicken 44 45 void nAEpWriteLong (number &a, const coeffs r);// 46 void nAEpWriteShort (number &a, const coeffs r);// 47 48 49 const char * nAEpRead (const char *s, number *a, const coeffs r); 50 number nAEpNormalize (number a, number b, const coeffs r);// 51 BOOLEAN nAEpGreater (number a, number b, const coeffs r);// 52 BOOLEAN nAEpEqual (number a, number b, const coeffs r); 53 BOOLEAN nAEpIsZero (number a, const coeffs r); 54 BOOLEAN nAEpIsOne (number a, const coeffs r); 55 BOOLEAN nAEpIsMOne (number a, const coeffs r); 56 BOOLEAN nAEpGreaterZero (number a, number b, const coeffs r); 57 void nAEpPower (number a, int i, number * result, const coeffs r); 58 number nAEpGetDenom (number &a, const coeffs r);// 59 number nAEpGetNumerator (number &a, const coeffs r);// 60 number nAEpGcd (number a, number b, const coeffs r); 61 number nAEpLcm (number a, number b, const coeffs r); 62 63 void nAEpDelete (number *a, const coeffs r);// 64 number nAEpSetMap (number a, const coeffs r);// 65 void nAEpInpMult (number &a ,number b, const coeffs r);// 66 void nAEpCoeffWrite (const coeffs r, BOOLEAN details);// 67 68 BOOLEAN nAEpClearContent (number a, const coeffs r);// 69 BOOLEAN nAEpClearDenominators (number a, const coeffs r);// 29 70 30 71 … … 356 397 r->cfDelete= nAEpDelete; 357 398 358 extern nMapFunc npSetMap(const coeffs src, const coeffs dst); // FIXME: BUG? 359 r->cfSetMap = npSetMap; // WHY??? // TODO: this seems to be a bug! 399 r->cfSetMap = npSetMap; // extern nMapFunc npSetMap(const coeffs src, const coeffs dst); // FIXME: WHY??? // TODO: this seems to be a bug! 360 400 361 401 r->cfInpMult=nAEpInpMult; //???? -
libpolys/coeffs/OPAEp.h
r80b6d36 rdd46a1 5 5 ****************************************/ 6 6 7 #include <coeffs/coeffs.h> 7 #include <misc/auxiliary.h> 8 9 struct n_Procs_s; typedef struct n_Procs_s *coeffs; 10 struct snumber; typedef struct snumber * number; 8 11 9 12 #ifdef SINGULAR_4_1 10 11 13 BOOLEAN n_pAEInitChar(coeffs , void *); 12 BOOLEAN nAEpCoeffIsEqual (number a, number b, const coeffs r); 13 number nAEpMult (number a, number b, const coeffs r); 14 number nAEpSub (number a, number b, const coeffs r); 15 number nAEpAdd (number a, number b, const coeffs r); 16 number nAEpDiv (number a, number b, const coeffs r); 17 number nAEpIntMod (number a, number b, const coeffs r);// Hir wollte wir was gucken 18 number nAEpExactDiv (number a, number b, const coeffs r); 19 number nAEpInit (long i, const coeffs r); 20 number nAEpInitMPZ (mpz_t m, const coeffs r); //nachgucken/fragen 21 int nAEpSize (number a, const coeffs r);/// 22 int nAEpInt (number &a, const coeffs r); 23 number nAEpMPZ (number a, const coeffs r); //nachgucken/fragen 24 number nAEpNeg (number c, const coeffs r); 25 number nAEpCopy (number a, number b, const coeffs r); // nachgicken 26 number nAEpRePart (number a, number b, const coeffs r); // nachgicken 27 number nAEpImPart (number a, number b, const coeffs r); // nachgicken 28 29 void nAEpWriteLong (number &a, const coeffs r);// 30 void nAEpWriteShort (number &a, const coeffs r);// 31 32 33 const char * nAEpRead (const char *s, number *a, const coeffs r); 34 number nAEpNormalize (number a, number b, const coeffs r);// 35 BOOLEAN nAEpGreater (number a, number b, const coeffs r);// 36 BOOLEAN nAEpEqual (number a, number b, const coeffs r); 37 BOOLEAN nAEpIsZero (number a, const coeffs r); 38 BOOLEAN nAEpIsOne (number a, const coeffs r); 39 BOOLEAN nAEpIsMOne (number a, const coeffs r); 40 BOOLEAN nAEpGreaterZero (number a, number b, const coeffs r); 41 void nAEpPower (number a, int i, number * result, const coeffs r); 42 number nAEpGetDenom (number &a, const coeffs r);// 43 number nAEpGetNumerator (number &a, const coeffs r);// 44 number nAEpGcd (number a, number b, const coeffs r); 45 number nAEpLcm (number a, number b, const coeffs r); 46 47 void nAEpDelete (number *a, const coeffs r);// 48 number nAEpSetMap (number a, const coeffs r);// 49 void nAEpInpMult (number &a ,number b, const coeffs r);// 50 void nAEpCoeffWrite (const coeffs r, BOOLEAN details);// 51 52 BOOLEAN nAEpClearContent (number a, const coeffs r);// 53 BOOLEAN nAEpClearDenominators (number a, const coeffs r);// 14 #endif 54 15 55 16 #endif 56 #endif -
libpolys/coeffs/bigintmat.cc
r80b6d36 rdd46a1 10 10 #include <misc/auxiliary.h> 11 11 12 13 14 12 #include "bigintmat.h" 15 13 #include <misc/intvec.h> 16 #include <coeffs/longrat.h> 17 14 15 #include "rmodulon.h" 18 16 19 17 #include <math.h> 20 18 #include <string.h> 21 19 20 ///create Z/nA of type n_Zn 21 static coeffs numbercoeffs(number n, coeffs c) // TODO: FIXME: replace with n_CoeffRingQuot1 22 { 23 mpz_t p; 24 number2mpz(n, c, p); 25 ZnmInfo *pp = new ZnmInfo; 26 pp->base = p; 27 pp->exp = 1; 28 coeffs nc = nInitChar(n_Zn, (void*)pp); 29 mpz_clear(p); 30 delete pp; 31 return nc; 32 } 22 33 23 34 //#define BIMATELEM(M,I,J) (M)[ (M).index(I,J) ] … … 484 495 else // Mit Leerzeichen auffÃŒllen und zahl reinschreiben 485 496 { 486 for (int j=0; j< colwid[cj]-_nl; j++)497 for (int j=0; j<(colwid[cj]-_nl); j++) 487 498 ps[pos+j] = ' '; 488 499 for (int j=0; j<_nl; j++) … … 1925 1936 } 1926 1937 1927 number d = n lGetDenom(q, Q),1928 n = n lGetNumerator(q, Q);1938 number d = n_GetDenom(q, Q), 1939 n = n_GetNumerator(q, Q); 1929 1940 1930 1941 n_Delete(&q, Q); … … 2436 2447 2437 2448 2438 ///create Z/nA of type n_Zn2439 coeffs numbercoeffs(number n, coeffs c) {2440 mpz_t p;2441 number2mpz(n, c, p);2442 ZnmInfo *pp = new ZnmInfo;2443 pp->base = p;2444 pp->exp = 1;2445 coeffs nc = nInitChar(n_Zn, (void*)pp);2446 mpz_clear(p);2447 delete pp;2448 return nc;2449 }2450 2451 2449 bool nCoeffs_are_equal(coeffs r, coeffs s) { 2452 2450 if ((r == NULL) || (s == NULL)) -
libpolys/coeffs/bigintmat.h
r80b6d36 rdd46a1 6 6 7 7 #include <omalloc/omalloc.h> 8 #include <resources/feFopen.h>9 8 #include <coeffs/coeffs.h> 10 #include <coeffs/rmodulon.h>11 9 12 10 /** … … 329 327 /// Don't use it. 330 328 int kernbase (bigintmat *a, bigintmat *c, number p, coeffs q); 331 coeffs numbercoeffs(number n, coeffs c);332 329 bool nCoeffs_are_equal(coeffs r, coeffs s); 333 // Geklaut aus anderer Datei:334 static inline void number2mpz(number n, coeffs c, mpz_t m){ n_MPZ(m, n, c); }335 static inline number mpz2number(mpz_t m, coeffs c){ return n_InitMPZ(m, c); }336 330 // enden wieder 337 331 void diagonalForm(bigintmat *a, bigintmat **b, bigintmat **c); -
libpolys/coeffs/coeffs.h
r80b6d36 rdd46a1 11 11 12 12 #include <misc/auxiliary.h> 13 #include <omalloc/omalloc.h> 14 13 15 #include <misc/sirandom.h> 14 16 /* for assume: */ … … 77 79 /// Additionally returns a number; 78 80 typedef void (*nCoeffsEnumeratorFunc)(ICoeffsEnumerator& numberCollectionEnumerator, number& output, const coeffs r); 81 82 extern omBin rnumber_bin; 83 84 #define FREE_RNUMBER(x) omFreeBin((void *)x, rnumber_bin) 85 #define ALLOC_RNUMBER() (number)omAllocBin(rnumber_bin) 86 #define ALLOC0_RNUMBER() (number)omAlloc0Bin(rnumber_bin) 79 87 80 88 … … 972 980 CanonicalForm n_convSingNFactoryN( number n, BOOLEAN setChar, const coeffs r ); 973 981 982 983 // TODO: remove the following functions... 984 // the following 2 inline functions are just convenience shortcuts for Frank's code: 985 static FORCE_INLINE void number2mpz(number n, coeffs c, mpz_t m){ n_MPZ(m, n, c); } 986 static FORCE_INLINE number mpz2number(mpz_t m, coeffs c){ return n_InitMPZ(m, c); } 987 974 988 #endif 975 989 -
libpolys/coeffs/ffields.cc
r80b6d36 rdd46a1 5 5 * ABSTRACT: finite fields with a none-prime number of elements (via tables) 6 6 */ 7 8 9 10 11 7 #include <misc/auxiliary.h> 12 8 #include <omalloc/omalloc.h> 13 9 14 #include <misc/auxiliary.h>15 10 #include <misc/mylimits.h> 16 11 #include <misc/sirandom.h> … … 18 13 #include <reporter/reporter.h> 19 14 20 #include <coeffs/coeffs.h> 21 #include <coeffs/numbers.h> 22 #include <coeffs/ffields.h> 23 #include <coeffs/longrat.h> 15 #include "coeffs.h" 16 #include "numbers.h" 17 #include "longrat.h" 24 18 25 19 #include <string.h> … … 803 797 return nfMapP; /* Z/p -> GF(p,n) */ 804 798 } 799 805 800 if (src->rep==n_rep_gap_rat) /*Q, Z */ 806 return nlModP; 801 { 802 return nlModP; // FIXME? TODO? // extern number nlModP(number q, const coeffs Q, const coeffs Zp); // Map q \in QQ \to Zp // FIXME! 803 } 804 807 805 return NULL; /* default */ 808 806 } -
libpolys/coeffs/ffields.h
r80b6d36 rdd46a1 9 9 #include <misc/auxiliary.h> 10 10 11 struct n_Procs_s; 12 typedef struct n_Procs_s *coeffs; 11 struct n_Procs_s; typedef struct n_Procs_s *coeffs; 13 12 14 13 //// Initialize r (n_GF) … … 17 16 /// Show the mininimal polynom.... 18 17 /// NOTE: this is used by char * sleftv::String(void *d, BOOLEAN typed, int dim) (from Singular/subexpr.cc) 19 /// TODO: rewrite this UGLYNESS!!!18 /// for printing minpoly 20 19 void nfShowMipo(const coeffs r); 21 20 -
libpolys/coeffs/gnumpc.cc
r80b6d36 rdd46a1 7 7 * ngc == number gnu complex 8 8 */ 9 10 11 12 13 9 #include <misc/auxiliary.h> 14 10 #include <omalloc/omalloc.h> 15 11 16 #include <misc/auxiliary.h>17 12 #include <misc/mylimits.h> 18 19 13 #include <reporter/reporter.h> 20 14 21 #include <coeffs/coeffs.h> 22 #include <coeffs/numbers.h> 23 24 #include <coeffs/longrat.h> 25 #include <coeffs/modulop.h> 26 27 #include <coeffs/gnumpc.h> 28 #include <coeffs/gnumpfl.h> 29 #include <coeffs/shortfl.h> 30 31 #include <coeffs/mpr_complex.h> 32 15 #include "coeffs.h" 16 #include "numbers.h" 17 18 #include "mpr_complex.h" 19 20 #include "gnumpc.h" 21 #include "longrat.h" 22 #include "gnumpfl.h" 23 #include "modulop.h" 24 #include "shortfl.h" 33 25 34 26 /// Get a mapping function from src into the domain of this type: long_C! … … 388 380 { 389 381 gmp_float *re=NULL; 390 s=ngfRead(s,(number *)&re, r); 382 s=ngfRead(s,(number *)&re, r); // FIXME? TODO? // extern const char * ngfRead (const char *s, number *a, const coeffs r); 391 383 gmp_complex *aa=new gmp_complex(*re); 392 384 *a=(number)aa; … … 675 667 if ( from != NULL ) 676 668 { 677 gmp_complex *res=new gmp_complex((double)nrFloat(from)); 669 gmp_complex *res=new gmp_complex((double)nrFloat(from)); // FIXME? TODO? // extern float nrFloat(number n); 678 670 return (number)res; 679 671 } … … 688 680 689 681 if ( from != NULL ) 690 return ngcInit(npInt(from, aRing), r); 682 return ngcInit(npInt(from, aRing), r); // FIXME? TODO? // extern int npInt (number &n, const coeffs r); 691 683 else 692 684 return NULL; -
libpolys/coeffs/gnumpc.h
r80b6d36 rdd46a1 9 9 #include <misc/auxiliary.h> 10 10 11 struct n_Procs_s; 12 typedef struct n_Procs_s *coeffs; 11 struct n_Procs_s; typedef struct n_Procs_s *coeffs; 13 12 14 13 /// Initialize r (n_long_C) -
libpolys/coeffs/gnumpfl.cc
r80b6d36 rdd46a1 8 8 */ 9 9 10 11 10 #include <misc/auxiliary.h> 12 13 #include <coeffs/coeffs.h>14 11 #include <omalloc/omalloc.h> 12 15 13 #include <reporter/reporter.h> 16 #include <coeffs/numbers.h> 17 #include <coeffs/modulop.h> 18 #include <coeffs/longrat.h> 19 #include <coeffs/shortfl.h> 20 21 #include <coeffs/gnumpfl.h> 22 #include <coeffs/mpr_complex.h> 14 15 #include "coeffs.h" 16 #include "numbers.h" 17 #include "mpr_complex.h" 18 19 #include "longrat.h" 20 #include "shortfl.h" 21 #include "gnumpfl.h" 22 #include "modulop.h" 23 23 24 24 //ring ngfMapRing; // to be used also in gnumpc.cc … … 26 26 /// Our Type! 27 27 static const n_coeffType ID = n_long_R; 28 29 /// Get a mapping function from src into the domain of this type: 30 nMapFunc ngfSetMap(const coeffs src, const coeffs dst); 31 32 const char * ngfRead (const char *s, number *a, const coeffs r); 33 34 // Private interface should be hidden!!! 35 /// Note: MAY NOT WORK AS EXPECTED! 36 BOOLEAN ngfGreaterZero(number za, const coeffs r); 37 BOOLEAN ngfGreater(number a, number b, const coeffs r); 38 BOOLEAN ngfEqual(number a, number b, const coeffs r); 39 BOOLEAN ngfIsOne(number a, const coeffs r); 40 BOOLEAN ngfIsMOne(number a, const coeffs r); 41 BOOLEAN ngfIsZero(number za, const coeffs r); 42 number ngfInit(long i, const coeffs r); 43 int ngfInt(number &n, const coeffs r); 44 number ngfNeg(number za, const coeffs r); 45 number ngfInvers(number a, const coeffs r); 46 number ngfAdd(number la, number li, const coeffs r); 47 number ngfSub(number la, number li, const coeffs r); 48 number ngfMult(number a, number b, const coeffs r); 49 number ngfDiv(number a, number b, const coeffs r); 50 void ngfPower(number x, int exp, number *lu, const coeffs r); 51 number ngfCopy(number a, const coeffs r); 52 number ngf_Copy(number a, coeffs r); 53 void ngfWrite(number &a, const coeffs r); 54 void ngfCoeffWrite(const coeffs r, BOOLEAN details); 55 56 void ngfDelete(number *a, const coeffs r); 57 58 number ngfMapQ(number from, const coeffs src, const coeffs r); 28 59 29 60 union nf … … 516 547 assume( getCoeffType(dst) == ID ); 517 548 assume( getCoeffType(src) == n_Zp ); 518 519 return ngfInit(npInt(from,src), dst); 549 550 return ngfInit(npInt(from,src), dst); // FIXME? TODO? // extern int npInt (number &n, const coeffs r); 520 551 } 521 552 -
libpolys/coeffs/gnumpfl.h
r80b6d36 rdd46a1 7 7 * ABSTRACT: computations with GMP floating-point numbers 8 8 */ 9 #include <coeffs/coeffs.h>10 9 11 /// Get a mapping function from src into the domain of this type: 12 nMapFunc ngfSetMap(const coeffs src, const coeffs dst); 10 #include <misc/auxiliary.h> 11 12 struct n_Procs_s; typedef struct n_Procs_s *coeffs; 13 struct snumber; typedef struct snumber * number; 13 14 14 15 /// Initialize r 15 16 BOOLEAN ngfInitChar(coeffs r, void *); 16 17 18 // will be reused by gnumpc.cc 17 19 const char * ngfRead (const char *s, number *a, const coeffs r); 18 20 19 // Private interface should be hidden!!!20 /// Note: MAY NOT WORK AS EXPECTED!21 BOOLEAN ngfGreaterZero(number za, const coeffs r);22 BOOLEAN ngfGreater(number a, number b, const coeffs r);23 BOOLEAN ngfEqual(number a, number b, const coeffs r);24 BOOLEAN ngfIsOne(number a, const coeffs r);25 BOOLEAN ngfIsMOne(number a, const coeffs r);26 BOOLEAN ngfIsZero(number za, const coeffs r);27 number ngfInit(long i, const coeffs r);28 int ngfInt(number &n, const coeffs r);29 number ngfNeg(number za, const coeffs r);30 number ngfInvers(number a, const coeffs r);31 number ngfAdd(number la, number li, const coeffs r);32 number ngfSub(number la, number li, const coeffs r);33 number ngfMult(number a, number b, const coeffs r);34 number ngfDiv(number a, number b, const coeffs r);35 void ngfPower(number x, int exp, number *lu, const coeffs r);36 number ngfCopy(number a, const coeffs r);37 number ngf_Copy(number a, coeffs r);38 void ngfWrite(number &a, const coeffs r);39 void ngfCoeffWrite(const coeffs r, BOOLEAN details);40 41 void ngfDelete(number *a, const coeffs r);42 43 number ngfMapQ(number from, const coeffs src, const coeffs r);44 45 21 #endif -
libpolys/coeffs/longrat.cc
r80b6d36 rdd46a1 6 6 */ 7 7 8 9 10 11 8 #include <misc/auxiliary.h> 9 #include <omalloc/omalloc.h> 10 11 #include <factory/factory.h> 12 12 13 #include <misc/sirandom.h> 13 14 #include <factory/factory.h> 15 16 #include <coeffs/rmodulon.h> 17 #include <coeffs/longrat.h> 14 #include <reporter/reporter.h> 15 16 #include "rmodulon.h" // ZnmInfo 17 #include "longrat.h" 18 #include "shortfl.h" 19 #include "modulop.h" 20 21 // allow inlining only from p_Numbers.h and if ! LDEBUG 22 #if defined(DO_LINLINE) && defined(P_NUMBERS_H) && !defined(LDEBUG) 23 #define LINLINE static FORCE_INLINE 24 #else 25 #define LINLINE 26 #undef DO_LINLINE 27 #endif // DO_LINLINE 28 29 LINLINE BOOLEAN nlEqual(number a, number b, const coeffs r); 30 LINLINE number nlInit(long i, const coeffs r); 31 LINLINE BOOLEAN nlIsOne(number a, const coeffs r); 32 LINLINE BOOLEAN nlIsZero(number za, const coeffs r); 33 LINLINE number nlCopy(number a, const coeffs r); 34 LINLINE number nl_Copy(number a, const coeffs r); 35 LINLINE void nlDelete(number *a, const coeffs r); 36 LINLINE number nlNeg(number za, const coeffs r); 37 LINLINE number nlAdd(number la, number li, const coeffs r); 38 LINLINE number nlSub(number la, number li, const coeffs r); 39 LINLINE number nlMult(number a, number b, const coeffs r); 40 LINLINE void nlInpAdd(number &a, number b, const coeffs r); 41 LINLINE void nlInpMult(number &a, number b, const coeffs r); 42 43 number nlRInit (long i); 44 45 46 number nlInit2 (int i, int j, const coeffs r); 47 number nlInit2gmp (mpz_t i, mpz_t j, const coeffs r); 48 49 // number nlInitMPZ(mpz_t m, const coeffs r); 50 // void nlMPZ(mpz_t m, number &n, const coeffs r); 51 52 void nlNormalize(number &x, const coeffs r); 53 54 number nlGcd(number a, number b, const coeffs r); 55 number nlExtGcd(number a, number b, number *s, number *t, const coeffs); 56 number nlNormalizeHelper(number a, number b, const coeffs r); /*special routine !*/ 57 BOOLEAN nlGreater(number a, number b, const coeffs r); 58 BOOLEAN nlIsMOne(number a, const coeffs r); 59 int nlInt(number &n, const coeffs r); 60 number nlBigInt(number &n); 61 62 #ifdef HAVE_RINGS 63 number nlMapGMP(number from, const coeffs src, const coeffs dst); 64 #endif 65 66 BOOLEAN nlGreaterZero(number za, const coeffs r); 67 number nlInvers(number a, const coeffs r); 68 number nlDiv(number a, number b, const coeffs r); 69 number nlExactDiv(number a, number b, const coeffs r); 70 number nlIntDiv(number a, number b, const coeffs r); 71 number nlIntMod(number a, number b, const coeffs r); 72 void nlPower(number x, int exp, number *lu, const coeffs r); 73 const char * nlRead (const char *s, number *a, const coeffs r); 74 void nlWrite(number &a, const coeffs r); 75 76 number nlGetDenom(number &n, const coeffs r); 77 number nlGetNumerator(number &n, const coeffs r); 78 void nlCoeffWrite(const coeffs r, BOOLEAN details); 79 number nlChineseRemainder(number *x, number *q,int rl, const coeffs C); 80 number nlFarey(number nN, number nP, const coeffs CF); 81 82 #ifdef LDEBUG 83 BOOLEAN nlDBTest(number a, const char *f, const int l); 84 #endif 85 86 extern number nlOne; // FIXME? TODO? // move into coeffs? 87 88 nMapFunc nlSetMap(const coeffs src, const coeffs dst); 89 90 // in-place operations 91 void nlInpIntDiv(number &a, number b, const coeffs r); 92 93 #ifdef LDEBUG 94 #define nlTest(a, r) nlDBTest(a,__FILE__,__LINE__, r) 95 BOOLEAN nlDBTest(number a, char *f,int l, const coeffs r); 96 #else 97 #define nlTest(a, r) do {} while (0) 98 #endif 18 99 19 100 … … 66 147 67 148 #include <coeffs/numbers.h> 68 #include <coeffs/modulop.h>69 #include <coeffs/shortfl.h>70 149 #include <coeffs/mpr_complex.h> 71 150 … … 121 200 assume( getCoeffType(src) == n_Zp ); 122 201 123 number to ;124 to = nlInit(npInt(from,src), dst);202 number to = nlInit(npInt(from,src), dst); // FIXME? TODO? // extern int npInt (number &n, const coeffs r); 203 125 204 return to; 126 205 } … … 267 346 #endif 268 347 269 CanonicalForm nlConvSingNFactoryN( number n,BOOLEAN setChar, const coeffs /*r*/ )348 static CanonicalForm nlConvSingNFactoryN( number n, const BOOLEAN setChar, const coeffs /*r*/ ) 270 349 { 271 350 if (setChar) setCharacteristic( 0 ); … … 310 389 } 311 390 312 number nlConvFactoryNSingN( const CanonicalForm n, const coeffs r) 313 { 314 if (n.isImm()) 315 { 316 long lz=n.intval(); 317 int iz=(int)lz; 391 number nlRInit (long i); 392 393 static number nlConvFactoryNSingN( const CanonicalForm f, const coeffs r) 394 { 395 if (f.isImm()) 396 { 397 const long lz=f.intval(); 398 const int iz=(int)lz; 318 399 if ((long)iz==lz) 319 { 320 return nlInit(n.intval(),r); 321 } 322 else return nlRInit(lz); 323 return nlInit(n.intval(),r); 400 return nlInit(f.intval(),r); 401 else 402 return nlRInit(lz); 403 // return nlInit(f.intval(),r); 324 404 } 325 405 else … … 329 409 z->debug=123456; 330 410 #endif 331 gmp_numerator( n, z->z );332 if ( n.den().isOne() )411 gmp_numerator( f, z->z ); 412 if ( f.den().isOne() ) 333 413 z->s = 3; 334 414 else 335 415 { 336 gmp_denominator( n, z->n );416 gmp_denominator( f, z->n ); 337 417 z->s = 0; 338 418 } … … 342 422 } 343 423 344 number nlRInit (long i);345 346 424 static number nlMapR(number from, const coeffs src, const coeffs dst) 347 425 { 348 426 assume( getCoeffType(src) == n_R ); 349 427 350 double f=nrFloat(from); 428 double f=nrFloat(from); // FIXME? TODO? // extern float nrFloat(number n); 351 429 if (f==0.0) return INT_TO_SR(0); 352 430 int f_sign=1; -
libpolys/coeffs/longrat.h
r80b6d36 rdd46a1 8 8 */ 9 9 #include <misc/auxiliary.h> 10 #include <omalloc/omalloc.h>11 #include <reporter/reporter.h>12 10 13 11 #include <coeffs/si_gmp.h> 14 12 #include <coeffs/coeffs.h> 15 13 16 struct snumber; 17 typedef struct snumber *number; 14 struct snumber; typedef struct snumber *number; 18 15 19 16 /*-----------------------------------------------------------------*/ … … 72 69 #define MP_SMALL 1 73 70 71 BOOLEAN nlInitChar(coeffs, void*); 74 72 75 76 // allow inlining only from p_Numbers.h and if ! LDEBUG 77 78 #if defined(DO_LINLINE) && defined(P_NUMBERS_H) && !defined(LDEBUG) 79 #define LINLINE static inline 80 #else 81 #define LINLINE 82 #undef DO_LINLINE 83 #endif // DO_LINLINE 84 85 LINLINE BOOLEAN nlEqual(number a, number b, const coeffs r); 86 LINLINE number nlInit(long i, const coeffs r); 87 number nlRInit (long i); 88 LINLINE BOOLEAN nlIsOne(number a, const coeffs r); 89 LINLINE BOOLEAN nlIsZero(number za, const coeffs r); 90 LINLINE number nlCopy(number a, const coeffs r); 91 LINLINE number nl_Copy(number a, const coeffs r); 92 LINLINE void nlDelete(number *a, const coeffs r); 93 LINLINE number nlNeg(number za, const coeffs r); 94 LINLINE number nlAdd(number la, number li, const coeffs r); 95 LINLINE number nlSub(number la, number li, const coeffs r); 96 LINLINE number nlMult(number a, number b, const coeffs r); 97 98 BOOLEAN nlInitChar(coeffs r, void*); 99 100 number nlInit2 (int i, int j, const coeffs r); 101 number nlInit2gmp (mpz_t i, mpz_t j, const coeffs r); 102 103 // number nlInitMPZ(mpz_t m, const coeffs r); 104 // void nlMPZ(mpz_t m, number &n, const coeffs r); 105 106 number nlGcd(number a, number b, const coeffs r); 107 number nlExtGcd(number a, number b, number *s, number *t, const coeffs); 108 number nlNormalizeHelper(number a, number b, const coeffs r); /*special routine !*/ 109 BOOLEAN nlGreater(number a, number b, const coeffs r); 110 BOOLEAN nlIsMOne(number a, const coeffs r); 111 int nlInt(number &n, const coeffs r); 112 number nlBigInt(number &n); 113 114 #ifdef HAVE_RINGS 115 number nlMapGMP(number from, const coeffs src, const coeffs dst); 116 void nlGMP(number &i, number n, const coeffs r); 117 #endif 118 119 BOOLEAN nlGreaterZero(number za, const coeffs r); 120 number nlInvers(number a, const coeffs r); 121 void nlNormalize(number &x, const coeffs r); 122 number nlDiv(number a, number b, const coeffs r); 123 number nlExactDiv(number a, number b, const coeffs r); 124 number nlIntDiv(number a, number b, const coeffs r); 125 number nlIntMod(number a, number b, const coeffs r); 126 void nlPower(number x, int exp, number *lu, const coeffs r); 127 const char * nlRead (const char *s, number *a, const coeffs r); 128 void nlWrite(number &a, const coeffs r); 129 130 /// Map q \in QQ \to Zp 131 number nlModP(number q, const coeffs Q, const coeffs Zp); 132 133 int nlSize(number n, const coeffs r); 134 73 /// only used by slimgb (tgb.cc) 135 74 static inline int nlQlogSize (number n, const coeffs r) 136 75 { 137 76 assume( nCoeff_is_Q (r) ); 138 77 139 long nl=n lSize(n,r);78 long nl=n_Size(n,r); 140 79 if (nl==0L) return 0; 141 80 if (nl==1L) … … 157 96 } 158 97 159 number nlGetDenom(number &n, const coeffs r);160 number nlGetNumerator(number &n, const coeffs r);161 void nlCoeffWrite(const coeffs r, BOOLEAN details);162 number nlChineseRemainder(number *x, number *q,int rl, const coeffs C);163 number nlFarey(number nN, number nP, const coeffs CF);164 98 165 #ifdef LDEBUG 166 BOOLEAN nlDBTest(number a, const char *f, const int l);167 #endif 168 extern number nlOne;99 number nlModP(number q, const coeffs Q, const coeffs Zp); 100 void nlNormalize(number &x, const coeffs r); 101 void nlInpGcd(number &a, number b, const coeffs r); 102 void nlDelete(number *a, const coeffs r); 169 103 170 nMapFunc nlSetMap(const coeffs src, const coeffs dst); 171 172 extern omBin rnumber_bin; 173 174 #define FREE_RNUMBER(x) omFreeBin((void *)x, rnumber_bin) 175 #define ALLOC_RNUMBER() (number)omAllocBin(rnumber_bin) 176 #define ALLOC0_RNUMBER() (number)omAlloc0Bin(rnumber_bin) 177 178 // in-place operations 179 void nlInpGcd(number &a, number b, const coeffs r); 180 void nlInpIntDiv(number &a, number b, const coeffs r); 181 182 LINLINE void nlInpAdd(number &a, number b, const coeffs r); 183 LINLINE void nlInpMult(number &a, number b, const coeffs r); 184 185 #ifdef LDEBUG 186 #define nlTest(a, r) nlDBTest(a,__FILE__,__LINE__, r) 187 BOOLEAN nlDBTest(number a, char *f,int l, const coeffs r); 188 #else 189 #define nlTest(a, r) do {} while (0) 190 #endif 104 // FIXME: TODO: why only if HAVE_RINGS? bug? 105 # ifdef HAVE_RINGS 106 void nlGMP(number &i, number n, const coeffs r); // to be replaced with n_MPZ(number n, number &i,const coeffs r)??? 107 number nlMapGMP(number from, const coeffs src, const coeffs dst); 108 # endif 191 109 192 110 #endif -
libpolys/coeffs/longrat0.cc
r80b6d36 rdd46a1 10 10 #include <string.h> 11 11 12 13 14 15 12 #include <misc/auxiliary.h> 16 17 13 #include <omalloc/omalloc.h> 18 14 #include <reporter/reporter.h> … … 20 16 #include "coeffs.h" 21 17 #include "numbers.h" 22 23 18 #include "longrat.h" 24 19 … … 110 105 { 111 106 number aa=*a; 112 nlNormalize(aa,r); 107 nlNormalize(aa,r); // FIXME? TODO? // extern void nlNormalize(number &x, const coeffs r); 113 108 *a=aa; 114 109 } … … 135 130 if (a->s==0) 136 131 { 137 nlNormalize(a,r); 132 nlNormalize(a,r); // FIXME? TODO? // extern void nlNormalize(number &x, const coeffs r); 138 133 nlWrite(a,r); 139 134 return; -
libpolys/coeffs/modulop.cc
r80b6d36 rdd46a1 6 6 */ 7 7 8 9 10 11 8 #include <misc/auxiliary.h> 9 #include <omalloc/omalloc.h> 12 10 13 11 #include <factory/factory.h> 14 12 15 #include <string.h>16 #include <omalloc/omalloc.h>17 #include <coeffs/coeffs.h>18 #include <reporter/reporter.h>19 #include <coeffs/numbers.h>20 #include <coeffs/longrat.h>21 #include <coeffs/mpr_complex.h>22 13 #include <misc/mylimits.h> 23 14 #include <misc/sirandom.h> 24 #include <coeffs/modulop.h> 25 26 // int npGen=0; 15 16 #include <reporter/reporter.h> 17 18 #include <coeffs/coeffs.h> 19 #include <coeffs/numbers.h> 20 #include <coeffs/mpr_complex.h> 21 22 #include "longrat.h" 23 #include "modulop.h" 24 25 #include <string.h> 26 27 // enable large primes (32003 < p < 2^31-) 28 #define NV_OPS 29 #define NV_MAX_PRIME 32003 27 30 28 31 /// Our Type! 29 32 static const n_coeffType ID = n_Zp; 33 34 BOOLEAN npGreaterZero (number k, const coeffs r); 35 number npMult (number a, number b, const coeffs r); 36 number npInit (long i, const coeffs r); 37 int npInt (number &n, const coeffs r); 38 number npAdd (number a, number b,const coeffs r); 39 number npSub (number a, number b,const coeffs r); 40 void npPower (number a, int i, number * result,const coeffs r); 41 BOOLEAN npIsZero (number a,const coeffs r); 42 BOOLEAN npIsOne (number a,const coeffs r); 43 BOOLEAN npIsMOne (number a,const coeffs r); 44 number npDiv (number a, number b,const coeffs r); 45 number npNeg (number c,const coeffs r); 46 number npInvers (number c,const coeffs r); 47 BOOLEAN npGreater (number a, number b,const coeffs r); 48 BOOLEAN npEqual (number a, number b,const coeffs r); 49 void npWrite (number &a, const coeffs r); 50 void npCoeffWrite (const coeffs r, BOOLEAN details); 51 const char * npRead (const char *s, number *a,const coeffs r); 52 #ifdef LDEBUG 53 BOOLEAN npDBTest (number a, const char *f, const int l, const coeffs r); 54 #define npTest(A,r) npDBTest(A,__FILE__,__LINE__, r) 55 #else 56 #define npTest(A,r) (0) 57 #endif 58 59 //int npGetChar(); 60 61 nMapFunc npSetMap(const coeffs src, const coeffs dst); 62 number npMapP(number from, const coeffs src, const coeffs r); 63 64 // extern int npGen; // obsolete 65 66 // int npGen=0; 67 68 /*-------specials for spolys, do NOT use otherwise--------------------------*/ 69 /* for npMultM, npSubM, npNegM, npEqualM : */ 70 #ifdef HAVE_DIV_MOD 71 extern unsigned short *npInvTable; 72 #else 73 #ifndef HAVE_MULT_MOD 74 extern long npPminus1M; 75 extern unsigned short *npExpTable; 76 extern unsigned short *npLogTable; 77 #endif 78 #endif 30 79 31 80 #ifdef NV_OPS … … 743 792 #endif 744 793 if (src->rep==n_rep_gap_rat) /* Q, Z */ 745 { 746 return nlModP; // npMap0; 794 { 795 return nlModP; // npMap0; // FIXME? TODO? // extern number nlModP(number q, const coeffs Q, const coeffs Zp); // Map q \in QQ \to Zp // FIXME! 747 796 } 748 797 if ((src->rep==n_rep_int) && nCoeff_is_Zp(src) ) -
libpolys/coeffs/modulop.h
r80b6d36 rdd46a1 7 7 * ABSTRACT: numbers modulo p (<=32003) 8 8 */ 9 #include < coeffs/coeffs.h>9 #include <misc/auxiliary.h> 10 10 11 11 // defines are in struct.h … … 16 16 // define if an if should be used 17 17 //#define HAVE_GENERIC_ADD 18 19 // enable large primes (32003 < p < 2^31-) 20 #define NV_OPS 21 #define NV_MAX_PRIME 32003 22 23 // extern int npGen; // obsolete 18 struct n_Procs_s; typedef struct n_Procs_s *coeffs; 19 struct snumber; typedef struct snumber * number; 24 20 25 21 BOOLEAN npInitChar(coeffs r, void* p); 26 27 BOOLEAN npGreaterZero (number k, const coeffs r);28 number npMult (number a, number b, const coeffs r);29 number npInit (long i, const coeffs r);30 int npInt (number &n, const coeffs r);31 number npAdd (number a, number b,const coeffs r);32 number npSub (number a, number b,const coeffs r);33 void npPower (number a, int i, number * result,const coeffs r);34 BOOLEAN npIsZero (number a,const coeffs r);35 BOOLEAN npIsOne (number a,const coeffs r);36 BOOLEAN npIsMOne (number a,const coeffs r);37 number npDiv (number a, number b,const coeffs r);38 number npNeg (number c,const coeffs r);39 number npInvers (number c,const coeffs r);40 BOOLEAN npGreater (number a, number b,const coeffs r);41 BOOLEAN npEqual (number a, number b,const coeffs r);42 void npWrite (number &a, const coeffs r);43 void npCoeffWrite (const coeffs r, BOOLEAN details);44 const char * npRead (const char *s, number *a,const coeffs r);45 #ifdef LDEBUG46 BOOLEAN npDBTest (number a, const char *f, const int l, const coeffs r);47 #define npTest(A,r) npDBTest(A,__FILE__,__LINE__, r)48 #else49 #define npTest(A,r) (0)50 #endif51 52 //int npGetChar();53 54 nMapFunc npSetMap(const coeffs src, const coeffs dst);55 number npMapP(number from, const coeffs src, const coeffs r);56 /*-------specials for spolys, do NOT use otherwise--------------------------*/57 /* for npMultM, npSubM, npNegM, npEqualM : */58 #ifdef HAVE_DIV_MOD59 extern unsigned short *npInvTable;60 #else61 #ifndef HAVE_MULT_MOD62 extern long npPminus1M;63 extern unsigned short *npExpTable;64 extern unsigned short *npLogTable;65 #endif66 #endif67 22 68 23 // inline number npMultM(number a, number b, int npPrimeM) … … 164 119 // } 165 120 121 // The folloing is reused inside gnumpc.cc, gnumpfl.cc and longrat.cc 122 int npInt (number &n, const coeffs r); 166 123 167 168 124 // The following is currently used in OPAE.cc, OPAEQ.cc and OPAEp.cc for setting their SetMap... 125 nMapFunc npSetMap(const coeffs src, const coeffs dst); // FIXME! BUG? 169 126 170 127 #define npEqualM(A,B,r) ((A)==(B)) -
libpolys/coeffs/mpr_complex.cc
r80b6d36 rdd46a1 13 13 14 14 #include <misc/auxiliary.h> 15 #include <omalloc/omalloc.h> 16 17 #include <reporter/reporter.h> 15 18 16 19 //#ifdef HAVE_MPR 17 20 #include <coeffs/coeffs.h> 18 #include <reporter/reporter.h>19 #include <omalloc/omalloc.h>20 21 #include <coeffs/numbers.h> 21 #include <coeffs/longrat.h> 22 23 #include <coeffs/mpr_complex.h> 24 25 #include "longrat.h" 26 22 27 #include <math.h> 23 #include <coeffs/mpr_complex.h> 28 24 29 25 30 //%s … … 391 396 if ( num->s == 0 ) 392 397 { 393 nlNormalize( num, src ); 398 nlNormalize( num, src ); // FIXME? TODO? // extern void nlNormalize(number &x, const coeffs r); // FIXME 394 399 } 395 400 if (SR_HDL(num) & SR_INT) … … 450 455 if ( num->s == 0 ) 451 456 { 452 nlNormalize( num, src ); 457 nlNormalize( num, src ); // FIXME? TODO? // extern void nlNormalize(number &x, const coeffs r); // FIXME 453 458 } 454 459 if (SR_HDL(num) & SR_INT) -
libpolys/coeffs/numbers.cc
r80b6d36 rdd46a1 19 19 #include <coeffs/numbers.h> 20 20 21 #include <coeffs/numbers.h>22 21 #include <coeffs/longrat.h> 23 22 #include <coeffs/modulop.h> … … 28 27 29 28 #ifdef HAVE_RINGS 30 # include <coeffs/rmodulo2m.h>31 # include <coeffs/rmodulon.h>32 # include <coeffs/rintegers.h>29 # include <coeffs/rmodulo2m.h> 30 # include <coeffs/rmodulon.h> 31 # include <coeffs/rintegers.h> 33 32 #endif 34 33 -
libpolys/coeffs/rintegers.cc
r80b6d36 rdd46a1 6 6 */ 7 7 8 9 10 8 #include <misc/auxiliary.h> 9 #include <omalloc/omalloc.h> 10 11 #include <factory/factory.h> 12 13 #include <misc/mylimits.h> 14 #include <reporter/reporter.h> 15 16 #include "coeffs.h" 17 #include "numbers.h" 18 19 #include "si_gmp.h" 20 21 #include "mpr_complex.h" 22 #include "rintegers.h" 23 #include "rmodulon.h" 24 #include "longrat.h" 25 26 #include <string.h> 11 27 12 28 #ifdef HAVE_RINGS 13 29 14 #include <string.h>15 #include <misc/mylimits.h>16 #include <coeffs/coeffs.h>17 #include <reporter/reporter.h>18 #include <omalloc/omalloc.h>19 #include <coeffs/numbers.h>20 #include <coeffs/longrat.h>21 #include <coeffs/mpr_complex.h>22 #include <coeffs/rintegers.h>23 #include <coeffs/rmodulon.h>24 #include "si_gmp.h"25 #include "factory/factory.h"26 27 #include <factory/factory.h>28 30 29 31 /// Our Type! 30 32 static const n_coeffType ID = n_Z; 33 34 number nrzCopy (number a, const coeffs r); 35 int nrzSize (number a, const coeffs r); 36 void nrzDelete (number *a, const coeffs r); 37 BOOLEAN nrzGreaterZero (number k, const coeffs r); 38 number nrzMult (number a, number b, const coeffs r); 39 number nrzInit (long i, const coeffs r); 40 int nrzInt (number &n, const coeffs r); 41 number nrzAdd (number a, number b, const coeffs r); 42 number nrzSub (number a, number b, const coeffs r); 43 void nrzPower (number a, int i, number * result, const coeffs r); 44 BOOLEAN nrzIsZero (number a, const coeffs r); 45 BOOLEAN nrzIsOne (number a, const coeffs r); 46 BOOLEAN nrzIsMOne (number a, const coeffs r); 47 BOOLEAN nrzIsUnit (number a, const coeffs r); 48 number nrzGetUnit (number a, const coeffs r); 49 number nrzDiv (number a, number b, const coeffs r); 50 number nrzExactDiv (number a, number b, const coeffs r); 51 number nrzIntMod (number a, number b, const coeffs r); 52 number nrzNeg (number c, const coeffs r); 53 number nrzInvers (number c, const coeffs r); 54 BOOLEAN nrzGreater (number a, number b, const coeffs r); 55 BOOLEAN nrzDivBy (number a, number b, const coeffs r); 56 int nrzDivComp (number a, number b, const coeffs r); 57 BOOLEAN nrzEqual (number a, number b, const coeffs r); 58 number nrzLcm (number a,number b, const coeffs r); 59 number nrzGcd (number a,number b, const coeffs r); 60 number nrzExtGcd (number a, number b, number *s, number *t, const coeffs r); 61 nMapFunc nrzSetMap (const coeffs src, const coeffs dst); 62 void nrzWrite (number &a, const coeffs r); 63 const char * nrzRead (const char *s, number *a, const coeffs r); 64 char * nrzName (number n, const coeffs r); 65 void nrzCoeffWrite (const coeffs r, BOOLEAN details); 66 #ifdef LDEBUG 67 BOOLEAN nrzDBTest (number a, const char *f, const int l, const coeffs r); 68 #endif 69 void nrzSetExp(int c, coeffs r); 70 void nrzInitExp(int c, coeffs r); 71 void nrzDelete(number *a, const coeffs r); 72 coeffs nrzQuot1(number c, const coeffs r); 73 74 //CanonicalForm nrzConvSingNFactoryN(number n, BOOLEAN setChar, const coeffs /*r*/); 75 //number nrzConvFactoryNSingN(const CanonicalForm n, const coeffs r); 76 77 number nrzMapQ(number from, const coeffs src, const coeffs dst); 78 31 79 32 80 omBin gmp_nrz_bin = omGetSpecBin(sizeof(mpz_t)); … … 283 331 mpz_ptr erg = (mpz_ptr) omAllocBin(gmp_nrz_bin); 284 332 mpz_init(erg); 285 nlGMP(from, (number) erg, src); 333 nlGMP(from, (number) erg, src); // FIXME? TODO? // extern void nlGMP(number &i, number n, const coeffs r); // to be replaced with n_MPZ(erg, from, src); // ? 286 334 return (number) erg; 287 335 } -
libpolys/coeffs/rintegers.h
r80b6d36 rdd46a1 7 7 * ABSTRACT: numbers modulo n 8 8 */ 9 #include <misc/auxiliary.h> 10 #include <coeffs/coeffs.h> 11 9 12 #ifdef HAVE_RINGS 10 #include <coeffs/coeffs.h>11 13 12 14 #if SI_INTEGER_VARIANT == 3 … … 23 25 24 26 BOOLEAN nrzInitChar (coeffs r, void * parameter); 25 number nrzCopy (number a, const coeffs r); 26 int nrzSize (number a, const coeffs r); 27 void nrzDelete (number *a, const coeffs r); 28 BOOLEAN nrzGreaterZero (number k, const coeffs r); 29 number nrzMult (number a, number b, const coeffs r); 30 number nrzInit (long i, const coeffs r); 31 int nrzInt (number &n, const coeffs r); 32 number nrzAdd (number a, number b, const coeffs r); 33 number nrzSub (number a, number b, const coeffs r); 34 void nrzPower (number a, int i, number * result, const coeffs r); 35 BOOLEAN nrzIsZero (number a, const coeffs r); 36 BOOLEAN nrzIsOne (number a, const coeffs r); 37 BOOLEAN nrzIsMOne (number a, const coeffs r); 38 BOOLEAN nrzIsUnit (number a, const coeffs r); 39 number nrzGetUnit (number a, const coeffs r); 40 number nrzDiv (number a, number b, const coeffs r); 41 number nrzExactDiv (number a, number b, const coeffs r); 42 number nrzIntMod (number a, number b, const coeffs r); 43 number nrzNeg (number c, const coeffs r); 44 number nrzInvers (number c, const coeffs r); 45 BOOLEAN nrzGreater (number a, number b, const coeffs r); 46 BOOLEAN nrzDivBy (number a, number b, const coeffs r); 47 int nrzDivComp (number a, number b, const coeffs r); 48 BOOLEAN nrzEqual (number a, number b, const coeffs r); 49 number nrzLcm (number a,number b, const coeffs r); 50 number nrzGcd (number a,number b, const coeffs r); 51 number nrzExtGcd (number a, number b, number *s, number *t, const coeffs r); 52 nMapFunc nrzSetMap (const coeffs src, const coeffs dst); 27 28 // will be reused by rmodulon.cc 53 29 void nrzWrite (number &a, const coeffs r); 54 const char * nrzRead (const char *s, number *a, const coeffs r); 55 char * nrzName (number n, const coeffs r); 56 void nrzCoeffWrite (const coeffs r, BOOLEAN details); 57 #ifdef LDEBUG 58 BOOLEAN nrzDBTest (number a, const char *f, const int l, const coeffs r); 30 59 31 #endif 60 void nrzSetExp(int c, coeffs r);61 void nrzInitExp(int c, coeffs r);62 void nrzDelete(number *a, const coeffs r);63 coeffs nrzQuot1(number c, const coeffs r);64 32 65 //CanonicalForm nrzConvSingNFactoryN(number n, BOOLEAN setChar, const coeffs /*r*/);66 //number nrzConvFactoryNSingN(const CanonicalForm n, const coeffs r);67 68 number nrzMapQ(number from, const coeffs src, const coeffs dst);69 33 #endif 70 #endif -
libpolys/coeffs/rmodulo2m.cc
r80b6d36 rdd46a1 5 5 * ABSTRACT: numbers modulo 2^m 6 6 */ 7 8 9 10 11 7 #include <misc/auxiliary.h> 12 8 9 #include <omalloc/omalloc.h> 10 11 #include <misc/mylimits.h> 12 #include <reporter/reporter.h> 13 14 #include "si_gmp.h" 15 #include "coeffs.h" 16 #include "numbers.h" 17 #include "longrat.h" 18 #include "mpr_complex.h" 19 20 #include "rmodulo2m.h" 21 #include "rmodulon.h" 22 23 #include <string.h> 24 13 25 #ifdef HAVE_RINGS 14 15 #include <misc/mylimits.h>16 #include <coeffs/coeffs.h>17 #include <reporter/reporter.h>18 #include <omalloc/omalloc.h>19 #include <coeffs/numbers.h>20 #include <coeffs/longrat.h>21 #include <coeffs/mpr_complex.h>22 #include <coeffs/rmodulo2m.h>23 #include <coeffs/rmodulon.h>24 #include "si_gmp.h"25 26 #include <string.h>27 26 28 27 /// Our Type! 29 28 static const n_coeffType ID = n_Z2m; 29 30 number nr2mCopy (number a, const coeffs r); 31 BOOLEAN nr2mGreaterZero (number k, const coeffs r); 32 number nr2mMult (number a, number b, const coeffs r); 33 number nr2mInit (long i, const coeffs r); 34 int nr2mInt (number &n, const coeffs r); 35 number nr2mAdd (number a, number b, const coeffs r); 36 number nr2mSub (number a, number b, const coeffs r); 37 void nr2mPower (number a, int i, number * result, const coeffs r); 38 BOOLEAN nr2mIsZero (number a, const coeffs r); 39 BOOLEAN nr2mIsOne (number a, const coeffs r); 40 BOOLEAN nr2mIsMOne (number a, const coeffs r); 41 BOOLEAN nr2mIsUnit (number a, const coeffs r); 42 number nr2mGetUnit (number a, const coeffs r); 43 number nr2mDiv (number a, number b, const coeffs r); 44 number nr2mIntDiv (number a,number b, const coeffs r); 45 number nr2mMod (number a,number b, const coeffs r); 46 number nr2mNeg (number c, const coeffs r); 47 number nr2mInvers (number c, const coeffs r); 48 BOOLEAN nr2mGreater (number a, number b, const coeffs r); 49 BOOLEAN nr2mDivBy (number a, number b, const coeffs r); 50 int nr2mDivComp (number a, number b, const coeffs r); 51 BOOLEAN nr2mEqual (number a, number b, const coeffs r); 52 number nr2mLcm (number a, number b, const coeffs r); 53 number nr2mGcd (number a, number b, const coeffs r); 54 number nr2mExtGcd (number a, number b, number *s, number *t, const coeffs r); 55 nMapFunc nr2mSetMap (const coeffs src, const coeffs dst); 56 void nr2mWrite (number &a, const coeffs r); 57 const char * nr2mRead (const char *s, number *a, const coeffs r); 58 char * nr2mName (number n, const coeffs r); 59 void nr2mCoeffWrite (const coeffs r, BOOLEAN details); 60 coeffs nr2mQuot1(number c, const coeffs r); 61 #ifdef LDEBUG 62 BOOLEAN nr2mDBTest (number a, const char *f, const int l, const coeffs r); 63 #endif 64 void nr2mSetExp(int c, const coeffs r); 65 void nr2mInitExp(int c, const coeffs r); 66 67 number nr2mMapQ(number from, const coeffs src, const coeffs dst); 68 69 static inline number nr2mMultM(number a, number b, const coeffs r) 70 { 71 return (number) 72 ((((unsigned long) a) * ((unsigned long) b)) & ((unsigned long)r->mod2mMask)); 73 } 74 75 static inline number nr2mAddM(number a, number b, const coeffs r) 76 { 77 return (number) 78 ((((unsigned long) a) + ((unsigned long) b)) & ((unsigned long)r->mod2mMask)); 79 } 80 81 static inline number nr2mSubM(number a, number b, const coeffs r) 82 { 83 return (number)((unsigned long)a < (unsigned long)b ? 84 r->mod2mMask - (unsigned long)b + (unsigned long)a + 1: 85 (unsigned long)a - (unsigned long)b); 86 } 87 88 #define nr2mNegM(A,r) (number)((r->mod2mMask - (unsigned long)(A) + 1) & r->mod2mMask) 89 #define nr2mEqualM(A,B) ((A)==(B)) 30 90 31 91 extern omBin gmp_nrz_bin; /* init in rintegers*/ … … 655 715 mpz_init_set_ui(k, dst->mod2mMask); 656 716 657 nlGMP(from, (number)erg, src); 717 nlGMP(from, (number)erg, src); // FIXME? TODO? // extern void nlGMP(number &i, number n, const coeffs r); // to be replaced with n_MPZ(erg, from, src); // ? 658 718 mpz_and(erg, erg, k); 659 719 number res = (number)mpz_get_ui(erg); -
libpolys/coeffs/rmodulo2m.h
r80b6d36 rdd46a1 8 8 * fits in an unsigned long 9 9 */ 10 11 #include <misc/auxiliary.h> 12 13 struct n_Procs_s; typedef struct n_Procs_s *coeffs; 14 struct snumber; typedef struct snumber * number; 15 10 16 #ifdef HAVE_RINGS 11 #include <coeffs/coeffs.h>12 #include <coeffs/rintegers.h>13 17 14 18 BOOLEAN nr2mInitChar (coeffs r, void*); 15 19 16 number nr2mCopy (number a, const coeffs r);17 BOOLEAN nr2mGreaterZero (number k, const coeffs r);18 number nr2mMult (number a, number b, const coeffs r);19 number nr2mInit (long i, const coeffs r);20 int nr2mInt (number &n, const coeffs r);21 number nr2mAdd (number a, number b, const coeffs r);22 number nr2mSub (number a, number b, const coeffs r);23 void nr2mPower (number a, int i, number * result, const coeffs r);24 BOOLEAN nr2mIsZero (number a, const coeffs r);25 BOOLEAN nr2mIsOne (number a, const coeffs r);26 BOOLEAN nr2mIsMOne (number a, const coeffs r);27 BOOLEAN nr2mIsUnit (number a, const coeffs r);28 number nr2mGetUnit (number a, const coeffs r);29 number nr2mDiv (number a, number b, const coeffs r);30 number nr2mIntDiv (number a,number b, const coeffs r);31 number nr2mMod (number a,number b, const coeffs r);32 number nr2mNeg (number c, const coeffs r);33 number nr2mInvers (number c, const coeffs r);34 BOOLEAN nr2mGreater (number a, number b, const coeffs r);35 BOOLEAN nr2mDivBy (number a, number b, const coeffs r);36 int nr2mDivComp (number a, number b, const coeffs r);37 BOOLEAN nr2mEqual (number a, number b, const coeffs r);38 number nr2mLcm (number a, number b, const coeffs r);39 number nr2mGcd (number a, number b, const coeffs r);40 number nr2mExtGcd (number a, number b, number *s, number *t, const coeffs r);41 nMapFunc nr2mSetMap (const coeffs src, const coeffs dst);42 void nr2mWrite (number &a, const coeffs r);43 const char * nr2mRead (const char *s, number *a, const coeffs r);44 char * nr2mName (number n, const coeffs r);45 void nr2mCoeffWrite (const coeffs r, BOOLEAN details);46 coeffs nr2mQuot1(number c, const coeffs r);47 #ifdef LDEBUG48 BOOLEAN nr2mDBTest (number a, const char *f, const int l, const coeffs r);49 #endif50 void nr2mSetExp(int c, const coeffs r);51 void nr2mInitExp(int c, const coeffs r);52 53 number nr2mMapQ(number from, const coeffs src, const coeffs dst);54 55 static inline number nr2mMultM(number a, number b, const coeffs r)56 {57 return (number)58 ((((unsigned long) a) * ((unsigned long) b)) & ((unsigned long)r->mod2mMask));59 }60 61 static inline number nr2mAddM(number a, number b, const coeffs r)62 {63 return (number)64 ((((unsigned long) a) + ((unsigned long) b)) & ((unsigned long)r->mod2mMask));65 }66 67 static inline number nr2mSubM(number a, number b, const coeffs r)68 {69 return (number)((unsigned long)a < (unsigned long)b ?70 r->mod2mMask - (unsigned long)b + (unsigned long)a + 1:71 (unsigned long)a - (unsigned long)b);72 }73 74 #define nr2mNegM(A,r) (number)((r->mod2mMask - (unsigned long)(A) + 1) & r->mod2mMask)75 #define nr2mEqualM(A,B) ((A)==(B))76 77 78 20 #endif 79 21 #endif -
libpolys/coeffs/rmodulon.cc
r80b6d36 rdd46a1 5 5 * ABSTRACT: numbers modulo n 6 6 */ 7 8 9 10 11 7 #include <misc/auxiliary.h> 8 #include <omalloc/omalloc.h> 9 10 #include <misc/mylimits.h> 11 #include <reporter/reporter.h> 12 13 #include "si_gmp.h" 14 #include "coeffs.h" 15 #include "numbers.h" 16 17 #include "mpr_complex.h" 18 19 #include "longrat.h" 20 #include "rmodulon.h" 21 22 #include <string.h> 12 23 13 24 #ifdef HAVE_RINGS 14 15 #include <misc/mylimits.h>16 #include <coeffs/coeffs.h>17 #include <reporter/reporter.h>18 #include <omalloc/omalloc.h>19 #include <coeffs/numbers.h>20 #include <coeffs/longrat.h>21 #include <coeffs/mpr_complex.h>22 #include <coeffs/rmodulon.h>23 #include "si_gmp.h"24 25 #include <string.h>26 25 27 26 /// Our Type! 28 27 static const n_coeffType ID = n_Zn; 29 28 static const n_coeffType ID2 = n_Znm; 29 30 number nrnCopy (number a, const coeffs r); 31 int nrnSize (number a, const coeffs r); 32 void nrnDelete (number *a, const coeffs r); 33 BOOLEAN nrnGreaterZero (number k, const coeffs r); 34 number nrnMult (number a, number b, const coeffs r); 35 number nrnInit (long i, const coeffs r); 36 int nrnInt (number &n, const coeffs r); 37 number nrnAdd (number a, number b, const coeffs r); 38 number nrnSub (number a, number b, const coeffs r); 39 void nrnPower (number a, int i, number * result, const coeffs r); 40 BOOLEAN nrnIsZero (number a, const coeffs r); 41 BOOLEAN nrnIsOne (number a, const coeffs r); 42 BOOLEAN nrnIsMOne (number a, const coeffs r); 43 BOOLEAN nrnIsUnit (number a, const coeffs r); 44 number nrnGetUnit (number a, const coeffs r); 45 number nrnAnn (number a, const coeffs r); 46 number nrnDiv (number a, number b, const coeffs r); 47 number nrnMod (number a,number b, const coeffs r); 48 number nrnIntDiv (number a,number b, const coeffs r); 49 number nrnNeg (number c, const coeffs r); 50 number nrnInvers (number c, const coeffs r); 51 BOOLEAN nrnGreater (number a, number b, const coeffs r); 52 BOOLEAN nrnDivBy (number a, number b, const coeffs r); 53 int nrnDivComp (number a, number b, const coeffs r); 54 BOOLEAN nrnEqual (number a, number b, const coeffs r); 55 number nrnLcm (number a,number b, const coeffs r); 56 number nrnGcd (number a,number b, const coeffs r); 57 number nrnExtGcd (number a, number b, number *s, number *t, const coeffs r); 58 number nrnXExtGcd (number a, number b, number *s, number *t, number *u, number *v, const coeffs r); 59 number nrnQuotRem (number a, number b, number *s, const coeffs r); 60 nMapFunc nrnSetMap (const coeffs src, const coeffs dst); 61 #if SI_INTEGER_VARIANT==2 62 // FIXME? TODO? // extern void nrzWrite (number &a, const coeffs r); // FIXME 63 # define nrnWrite nrzWrite 64 #else 65 void nrnWrite (number &a, const coeffs); 66 #endif 67 const char * nrnRead (const char *s, number *a, const coeffs r); 68 void nrnCoeffWrite (const coeffs r, BOOLEAN details); 69 #ifdef LDEBUG 70 BOOLEAN nrnDBTest (number a, const char *f, const int l, const coeffs r); 71 #endif 72 void nrnSetExp(unsigned long c, const coeffs r); 73 void nrnInitExp(unsigned long c, const coeffs r); 74 coeffs nrnQuot1(number c, const coeffs r); 75 76 number nrnMapQ(number from, const coeffs src, const coeffs dst); 77 30 78 31 79 extern omBin gmp_nrz_bin; … … 770 818 { 771 819 mpz_ptr erg = (mpz_ptr)omAllocBin(gmp_nrz_bin); 772 mpz_init(erg); 773 nlGMP(from, (number)erg, src); 820 mpz_init(erg); 821 nlGMP(from, (number)erg, src); // FIXME? TODO? // extern void nlGMP(number &i, number n, const coeffs r); // to be replaced with n_MPZ(erg, from, src); // ? 774 822 mpz_mod(erg, erg, dst->modNumber); 775 823 return (number)erg; -
libpolys/coeffs/rmodulon.h
r80b6d36 rdd46a1 7 7 * ABSTRACT: numbers modulo n 8 8 */ 9 #include <misc/auxiliary.h> 10 11 struct n_Procs_s; typedef struct n_Procs_s *coeffs; 12 struct snumber; typedef struct snumber * number; 13 14 #include <coeffs/rintegers.h> 15 9 16 #ifdef HAVE_RINGS 10 #include <coeffs/coeffs.h>11 #include <coeffs/rintegers.h>12 17 13 18 typedef struct { mpz_ptr base; unsigned long exp; } ZnmInfo; 14 19 15 20 BOOLEAN nrnInitChar (coeffs r, void*); 16 number nrnCopy (number a, const coeffs r); 17 int nrnSize (number a, const coeffs r); 18 void nrnDelete (number *a, const coeffs r); 19 BOOLEAN nrnGreaterZero (number k, const coeffs r); 20 number nrnMult (number a, number b, const coeffs r); 21 number nrnInit (long i, const coeffs r); 22 int nrnInt (number &n, const coeffs r); 23 number nrnAdd (number a, number b, const coeffs r); 24 number nrnSub (number a, number b, const coeffs r); 25 void nrnPower (number a, int i, number * result, const coeffs r); 26 BOOLEAN nrnIsZero (number a, const coeffs r); 27 BOOLEAN nrnIsOne (number a, const coeffs r); 28 BOOLEAN nrnIsMOne (number a, const coeffs r); 29 BOOLEAN nrnIsUnit (number a, const coeffs r); 30 number nrnGetUnit (number a, const coeffs r); 31 number nrnAnn (number a, const coeffs r); 32 number nrnDiv (number a, number b, const coeffs r); 33 number nrnMod (number a,number b, const coeffs r); 34 number nrnIntDiv (number a,number b, const coeffs r); 35 number nrnNeg (number c, const coeffs r); 36 number nrnInvers (number c, const coeffs r); 37 BOOLEAN nrnGreater (number a, number b, const coeffs r); 38 BOOLEAN nrnDivBy (number a, number b, const coeffs r); 39 int nrnDivComp (number a, number b, const coeffs r); 40 BOOLEAN nrnEqual (number a, number b, const coeffs r); 41 number nrnLcm (number a,number b, const coeffs r); 42 number nrnGcd (number a,number b, const coeffs r); 43 number nrnExtGcd (number a, number b, number *s, number *t, const coeffs r); 44 number nrnXExtGcd (number a, number b, number *s, number *t, number *u, number *v, const coeffs r); 45 number nrnQuotRem (number a, number b, number *s, const coeffs r); 46 nMapFunc nrnSetMap (const coeffs src, const coeffs dst); 47 #if SI_INTEGER_VARIANT==2 48 #define nrnWrite nrzWrite 49 #else 50 void nrnWrite (number &a, const coeffs); 21 51 22 #endif 52 const char * nrnRead (const char *s, number *a, const coeffs r); 53 void nrnCoeffWrite (const coeffs r, BOOLEAN details); 54 #ifdef LDEBUG 55 BOOLEAN nrnDBTest (number a, const char *f, const int l, const coeffs r); 23 56 24 #endif 57 void nrnSetExp(unsigned long c, const coeffs r);58 void nrnInitExp(unsigned long c, const coeffs r);59 coeffs nrnQuot1(number c, const coeffs r);60 61 number nrnMapQ(number from, const coeffs src, const coeffs dst);62 #endif63 #endif -
libpolys/coeffs/shortfl.cc
r80b6d36 rdd46a1 10 10 11 11 #include <misc/auxiliary.h> 12 #include <coeffs/shortfl.h> 12 #include <misc/mylimits.h> 13 14 #include <reporter/reporter.h> 15 16 #include "numbers.h" 17 #include "coeffs.h" 18 #include "mpr_complex.h" 19 20 #include "shortfl.h" 21 #include "longrat.h" 13 22 14 23 #include <string.h> 15 24 #include <math.h> 16 #include <coeffs/coeffs.h>17 #include <coeffs/numbers.h>18 #include <reporter/reporter.h>19 #include <coeffs/numbers.h>20 #include <coeffs/longrat.h>21 #include <coeffs/mpr_complex.h>22 23 #include <misc/mylimits.h>24 25 25 26 /// Our Type! 26 27 static const n_coeffType ID = n_R; 28 29 // Private interface should be hidden!!! 30 31 BOOLEAN nrGreaterZero (number k, const coeffs r); 32 number nrMult (number a, number b, const coeffs r); 33 number nrInit (long i, const coeffs r); 34 int nrInt (number &n, const coeffs r); 35 number nrAdd (number a, number b, const coeffs r); 36 number nrSub (number a, number b, const coeffs r); 37 void nrPower (number a, int i, number * result, const coeffs r); 38 BOOLEAN nrIsZero (number a, const coeffs r); 39 BOOLEAN nrIsOne (number a, const coeffs r); 40 BOOLEAN nrIsMOne (number a, const coeffs r); 41 number nrDiv (number a, number b, const coeffs r); 42 number nrNeg (number c, const coeffs r); 43 number nrInvers (number c, const coeffs r); 44 BOOLEAN nrGreater (number a, number b, const coeffs r); 45 BOOLEAN nrEqual (number a, number b, const coeffs r); 46 void nrWrite (number &a, const coeffs r); 47 const char * nrRead (const char *s, number *a, const coeffs r); 48 49 #ifdef LDEBUG 50 BOOLEAN nrDBTest(number a, const coeffs r, const char *f, const int l); 51 #endif 52 53 /// Get a mapping function from src into the domain of this type: n_R 54 nMapFunc nrSetMap(const coeffs src, const coeffs dst); 55 56 // Where are the following used? 57 // int nrGetChar(); 58 number nrMapQ(number from, const coeffs r, const coeffs aRing); 27 59 28 60 static const float nrEps = 1.0e-3; -
libpolys/coeffs/shortfl.h
r80b6d36 rdd46a1 7 7 * ABSTRACT 8 8 */ 9 #include < coeffs/coeffs.h>9 #include <misc/auxiliary.h> 10 10 11 12 /// Get a mapping function from src into the domain of this type: n_R 13 nMapFunc nrSetMap(const coeffs src, const coeffs dst); 11 struct n_Procs_s; typedef struct n_Procs_s *coeffs; 12 struct snumber; typedef struct snumber * number; 14 13 15 14 /// Initialize r 16 15 BOOLEAN nrInitChar(coeffs r, void*); 17 16 18 // Private interface should be hidden!!! 19 20 BOOLEAN nrGreaterZero (number k, const coeffs r); 21 number nrMult (number a, number b, const coeffs r); 22 number nrInit (long i, const coeffs r); 23 int nrInt (number &n, const coeffs r); 24 number nrAdd (number a, number b, const coeffs r); 25 number nrSub (number a, number b, const coeffs r); 26 void nrPower (number a, int i, number * result, const coeffs r); 27 BOOLEAN nrIsZero (number a, const coeffs r); 28 BOOLEAN nrIsOne (number a, const coeffs r); 29 BOOLEAN nrIsMOne (number a, const coeffs r); 30 number nrDiv (number a, number b, const coeffs r); 31 number nrNeg (number c, const coeffs r); 32 number nrInvers (number c, const coeffs r); 33 BOOLEAN nrGreater (number a, number b, const coeffs r); 34 BOOLEAN nrEqual (number a, number b, const coeffs r); 35 void nrWrite (number &a, const coeffs r); 36 const char * nrRead (const char *s, number *a, const coeffs r); 37 #ifdef LDEBUG 38 BOOLEAN nrDBTest(number a, const coeffs r, const char *f, const int l); 39 #endif 40 41 42 43 // Where are the following used? 44 // int nrGetChar(); 45 number nrMapQ(number from, const coeffs r, const coeffs aRing); 46 47 17 // will be reused by gnumpc.cc and longrat.cc 48 18 /// Converts a n_R number into a float. Needed by Maps 49 19 float nrFloat(number n); 50 20 51 52 21 #endif 53 22 -
libpolys/coeffs/test.cc
r80b6d36 rdd46a1 8 8 #include <resources/feResource.h> 9 9 10 #include <coeffs/coeffs.h>11 #include <coeffs/numbers.h>12 13 #include <coeffs/longrat.h>14 #include <coeffs/gnumpfl.h>15 #include <coeffs/gnumpc.h>16 #include <coeffs/shortfl.h>17 #include <coeffs/ffields.h>18 #include <coeffs/modulop.h>19 #include <coeffs/rmodulon.h>20 #include <coeffs/rmodulo2m.h>21 #include <coeffs/rintegers.h>10 #include "coeffs.h" 11 #include "numbers.h" 12 13 #include "longrat.h" 14 #include "gnumpfl.h" 15 #include "gnumpc.h" 16 #include "shortfl.h" 17 #include "ffields.h" 18 #include "modulop.h" 19 #include "rmodulon.h" 20 #include "rmodulo2m.h" 21 #include "rintegers.h" 22 22 23 23 -
libpolys/polys/clapconv.cc
r80b6d36 rdd46a1 12 12 13 13 #include <misc/auxiliary.h> 14 #include <omalloc/omalloc.h> 14 15 15 16 #include <factory/factory.h> 16 17 17 #include <omalloc/omalloc.h>18 18 #include <coeffs/coeffs.h> 19 #include <coeffs/longrat.h> 20 #include <coeffs/modulop.h> 19 20 #include <coeffs/longrat.h> // snumber is necessary 21 21 22 #include <polys/monomials/p_polys.h> 22 23 #include <polys/sbuckets.h> … … 247 248 static number convFactoryNSingAN( const CanonicalForm &f, const ring r) 248 249 { 249 if ( f.isImm() ) 250 { 251 long longf=f.intval(); 252 int intf=(int) longf; 253 if((long)intf==longf) 254 { 255 assume (r->cf->extRing != NULL); 256 return n_Init(f.intval(),r->cf->extRing->cf); 257 } 258 else return nlRInit( longf ); 259 } 260 else 261 { 262 number z=ALLOC_RNUMBER(); 263 #if defined(LDEBUG) 264 z->debug=123456; 265 #endif 266 gmp_numerator( f, z->z ); 267 if ( f.den().isOne() ) 268 { 269 z->s = 3; 270 } 271 else 272 { 273 gmp_denominator( f, z->n ); 274 z->s = 0; 275 nlNormalize(z,r->cf->extRing->cf); 276 } 277 /*#ifdef LDEBUG 278 nlTest(z,r->cf->extRing->cf); 279 #endif*/ 280 return z; 281 } 250 assume (r != NULL); 251 assume (r->cf != NULL); 252 assume (r->cf->extRing != NULL); 253 // it seems that r->cf->extRing->cf has to be Q ... ? 254 return n_convFactoryNSingN( f, r->cf->extRing->cf ); 282 255 } 283 256 -
libpolys/polys/ext_fields/algext.cc
r80b6d36 rdd46a1 40 40 #include <coeffs/coeffs.h> 41 41 #include <coeffs/numbers.h> 42 42 43 #include <coeffs/longrat.h> 43 44 … … 959 960 // int p = rChar(dst->extRing); 960 961 961 number q = nlModP(a, src, dst->extRing->cf); 962 number q = nlModP(a, src, dst->extRing->cf); // FIXME? TODO? // extern number nlModP(number q, const coeffs Q, const coeffs Zp); // Map q \in QQ \to pZ 962 963 963 964 poly result = p_NSet(q, dst->extRing); -
libpolys/polys/ext_fields/algext.h
r80b6d36 rdd46a1 63 63 poly p_ExtGcd(poly p, poly &pFactor, poly q, poly &qFactor, ring r); 64 64 65 65 char* naCoeffString(const coeffs r); // will be reused in tranext.cc... 66 66 #endif 67 67 /* ALGEXT_H */ -
libpolys/polys/ext_fields/transext.cc
r80b6d36 rdd46a1 33 33 * TODO: the description above needs a major update!!! 34 34 */ 35 36 37 38 39 40 35 #define TRANSEXT_PRIVATES 41 36 42 43 44 45 37 #include <misc/auxiliary.h> 46 38 47 39 #include <omalloc/omalloc.h> 40 #include <factory/factory.h> 48 41 49 42 #include <reporter/reporter.h> … … 51 44 #include <coeffs/coeffs.h> 52 45 #include <coeffs/numbers.h> 46 53 47 #include <coeffs/longrat.h> 54 48 … … 59 53 #include <polys/clapsing.h> 60 54 #include <polys/clapconv.h> 61 #include <factory/factory.h> 62 63 #include <polys/ext_fields/transext.h> 55 64 56 #include <polys/prCopy.h> 57 #include "transext.h" 58 #include "algext.h" 65 59 66 60 #include <polys/PolyEnumerator.h> … … 1149 1143 { 1150 1144 c = p_GetCoeff(p, ntRing); 1151 tmp = n lGcd(c, gcdOfCoefficients, ntCoeffs);1145 tmp = n_Gcd(c, gcdOfCoefficients, ntCoeffs); 1152 1146 n_Delete(&gcdOfCoefficients, ntCoeffs); 1153 1147 gcdOfCoefficients = tmp; … … 1158 1152 { 1159 1153 c = p_GetCoeff(p, ntRing); 1160 tmp = n lGcd(c, gcdOfCoefficients, ntCoeffs);1154 tmp = n_Gcd(c, gcdOfCoefficients, ntCoeffs); 1161 1155 n_Delete(&gcdOfCoefficients, ntCoeffs); 1162 1156 gcdOfCoefficients = tmp; … … 1514 1508 { 1515 1509 pGcd = pa; 1516 p_SetCoeff (pGcd, n lGcd (pGetCoeff(pGcd), pGetCoeff(pb), ntCoeffs), ntRing);1510 p_SetCoeff (pGcd, n_Gcd (pGetCoeff(pGcd), pGetCoeff(pb), ntCoeffs), ntRing); 1517 1511 } 1518 1512 else … … 1769 1763 return res; 1770 1764 } 1771 number nn=n lGetDenom(a,src);1772 number zz=n lGetNumerator(a,src);1765 number nn=n_GetDenom(a,src); 1766 number zz=n_GetNumerator(a,src); 1773 1767 number res=ntInit(p_NSet(zz,dst->extRing), dst); 1774 1768 fraction ff=(fraction)res; … … 1888 1882 if (n_IsZero(a, src)) return NULL; 1889 1883 // int p = rChar(dst->extRing); 1890 number q = nlModP(a, src, dst->extRing->cf); 1884 1885 number q = nlModP(a, src, dst->extRing->cf); // FIXME? TODO? // extern number nlModP(number q, const coeffs Q, const coeffs Zp); // Map q \in QQ \to Zp 1891 1886 1892 1887 if (n_IsZero(q, dst->extRing->cf)) … … 2402 2397 2403 2398 cf->factoryVarOffset = R->cf->factoryVarOffset + rVar(R); 2404 extern char* naCoeffString(const coeffs r);2405 cf->cfCoeffString = naCoeffString; 2399 2400 cf->cfCoeffString = naCoeffString; // FIXME? TODO? // extern char* naCoeffString(const coeffs r); 2406 2401 2407 2402 cf->cfGreaterZero = ntGreaterZero; -
libpolys/polys/monomials/p_polys.cc
r80b6d36 rdd46a1 9 9 *******************************************************************/ 10 10 11 12 13 14 15 16 11 #include <ctype.h> 17 12 … … 23 18 #include <misc/intvec.h> 24 19 25 #include <coeffs/longrat.h> // ??? 26 #include <coeffs/ ffields.h>20 21 #include <coeffs/longrat.h> // snumber is needed... 27 22 28 23 #include <polys/PolyEnumerator.h> … … 133 128 for(j=rl-1;j>=0;j--) 134 129 { 135 x[j]=NULL; // n lInit(0...) takes no memory130 x[j]=NULL; // n_Init(0...) takes no memory 136 131 } 137 132 if (n_IsZero(n,R)) p_Delete(&h,R); … … 2421 2416 { 2422 2417 #if 0 2423 d=n lGcd(h,pGetCoeff(p),r->cf);2424 n lDelete(&h,r->cf);2418 d=n_Gcd(h,pGetCoeff(p),r->cf); 2419 n_Delete(&h,r->cf); 2425 2420 h = d; 2426 #else 2427 nlInpGcd(h,pGetCoeff(p),r->cf);2428 #endif 2429 if(n lSize(h,r->cf)<smax)2421 #else 2422 STATISTIC(n_Gcd); nlInpGcd(h,pGetCoeff(p),r->cf); // FIXME? TODO? // extern void nlInpGcd(number &a, number b, const coeffs r); 2423 #endif 2424 if(n_Size(h,r->cf)<smax) 2430 2425 { 2431 2426 //if (TEST_OPT_PROT) PrintS("g"); … … 2435 2430 } 2436 2431 p = ph; 2437 if (!n lGreaterZero(pGetCoeff(p),r->cf)) h=nlNeg(h,r->cf);2438 if(n lIsOne(h,r->cf)) return;2432 if (!n_GreaterZero(pGetCoeff(p),r->cf)) h=n_InpNeg(h,r->cf); 2433 if(n_IsOne(h,r->cf)) return; 2439 2434 //if (TEST_OPT_PROT) PrintS("c"); 2440 2435 while (p!=NULL) 2441 2436 { 2442 2437 #if 1 2443 d = n lExactDiv(pGetCoeff(p),h,r->cf);2438 d = n_ExactDiv(pGetCoeff(p),h,r->cf); 2444 2439 p_SetCoeff(p,d,r); 2445 2440 #else 2446 nlInpExactDiv(pGetCoeff(p),h,r->cf);2441 STATISTIC(n_ExactDiv); nlInpExactDiv(pGetCoeff(p),h,r->cf); // no such function... ? 2447 2442 #endif 2448 2443 pIter(p); 2449 2444 } 2450 n lDelete(&h,r->cf);2445 n_Delete(&h,r->cf); 2451 2446 } 2452 2447 #endif … … 2462 2457 if (pNext(pNext(ph))==NULL) 2463 2458 { 2464 return n lGetNom(pGetCoeff(pNext(ph)),r->cf);2459 return n_GetNumerator(pGetCoeff(pNext(ph)),r->cf); 2465 2460 } 2466 2461 poly p=ph; 2467 number n1=n lGetNom(pGetCoeff(p),r->cf);2462 number n1=n_GetNumerator(pGetCoeff(p),r->cf); 2468 2463 pIter(p); 2469 number n2=n lGetNom(pGetCoeff(p),r->cf);2464 number n2=n_GetNumerator(pGetCoeff(p),r->cf); 2470 2465 pIter(p); 2471 2466 number d; … … 2474 2469 { 2475 2470 nlNormalize(pGetCoeff(p),r->cf); 2476 t=n lGetNom(pGetCoeff(p),r->cf);2471 t=n_GetNumerator(pGetCoeff(p),r->cf); 2477 2472 if (nlGreaterZero(t,r->cf)) 2478 2473 d=nlAdd(n1,t,r->cf); … … 2485 2480 if (p==NULL) break; 2486 2481 nlNormalize(pGetCoeff(p),r->cf); 2487 t=n lGetNom(pGetCoeff(p),r->cf);2482 t=n_GetNumerator(pGetCoeff(p),r->cf); 2488 2483 if (nlGreaterZero(t,r->cf)) 2489 2484 d=nlAdd(n2,t,r->cf); … … 2513 2508 if(ph==NULL) 2514 2509 { 2515 if (s2==-1) return n lCopy(d,r->cf);2510 if (s2==-1) return n_Copy(d,r->cf); 2516 2511 break; 2517 2512 } … … 2533 2528 } 2534 2529 } 2535 return n lGcd(d,d2,r->cf);2530 return n_Gcd(d,d2,r->cf); 2536 2531 } 2537 2532 #endif -
libpolys/polys/monomials/ring.cc
r80b6d36 rdd46a1 22 22 #include <coeffs/numbers.h> 23 23 #include <coeffs/coeffs.h> 24 #include <coeffs/rmodulon.h>25 24 26 25 #include <polys/monomials/p_polys.h> -
libpolys/polys/operations/p_Mult_q.cc
r80b6d36 rdd46a1 9 9 *******************************************************************/ 10 10 11 12 13 11 #include <misc/auxiliary.h> 14 15 12 #include <factory/factory.h> 16 13 … … 18 15 19 16 #include <polys/monomials/p_polys.h> 17 #include <polys/kbuckets.h> 18 20 19 #include <polys/templates/p_Procs.h> 21 20 #include <polys/templates/p_MemCmp.h> 22 21 #include <polys/templates/p_MemAdd.h> 23 22 #include <polys/templates/p_MemCopy.h> 24 #include <polys/templates/p_Numbers.h>25 #include <polys/kbuckets.h>26 23 27 24 #include "p_Mult_q.h" -
libpolys/polys/templates/p_Procs_Set.h
r80b6d36 rdd46a1 13 13 * Created: 12/00 14 14 *******************************************************************/ 15 #include <coeffs/modulop.h>16 15 17 16 #include <reporter/reporter.h> -
libpolys/tests/polys_test.h
r80b6d36 rdd46a1 3 3 4 4 // the following headers are private... 5 #include <coeffs/longrat.h>6 #include <coeffs/gnumpfl.h>7 #include <coeffs/gnumpc.h>8 #include <coeffs/shortfl.h>9 #include <coeffs/ffields.h>10 #include <coeffs/modulop.h>11 #include <coeffs/rmodulon.h>12 #include <coeffs/rmodulo2m.h>13 #include <coeffs/rintegers.h>14 5 15 6 -
libpolys/tests/rings_test.h
r80b6d36 rdd46a1 3 3 4 4 // the following headers are private... 5 #include <coeffs/longrat.h>6 #include <coeffs/gnumpfl.h>7 #include <coeffs/gnumpc.h>8 #include <coeffs/shortfl.h>9 #include <coeffs/ffields.h>10 #include <coeffs/modulop.h>11 #include <coeffs/rmodulon.h>12 #include <coeffs/rmodulo2m.h>13 #include <coeffs/rintegers.h>14 5 15 6
Note: See TracChangeset
for help on using the changeset viewer.