Changeset 2206753 in git
- Timestamp:
- Nov 29, 2014, 8:49:14 PM (9 years ago)
- Branches:
- (u'spielwiese', 'd1b01e9d51ade4b46b745d3bada5c5f3696be3a8')
- Children:
- 8104914d2d708e24127bd8e7c8155a42a11e2ee4
- Parents:
- 80b6d366c7d9906d194bdb7023d476a11e90d957
- git-author:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2014-11-29 20:49:14+01:00
- git-committer:
- Oleksandr Motsak <motsak@mathematik.uni-kl.de>2014-12-15 18:48:27+01:00
- Files:
-
- 37 edited
Legend:
- Unmodified
- Added
- Removed
-
Singular/dyn_modules/Order/lattice.cc
r80b6d36 r2206753 1069 1069 for(int j=1;j<=size_elementarray;j++){ 1070 1070 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);1071 complexmat->set(r1+2*i-1,j,n_RePart(complexmat->view(r1+2*i,j),comp),comp); 1072 complexmat->set(r1+2*i,j,n_ImPart(complexmat->view(r1+2*i,j),comp),comp); 1073 1073 } 1074 1074 } … … 1097 1097 1098 1098 bool IsReal(number a, coeffs coef){ //Im(a)==0 1099 number imag = n gcImPart(a, coef);1099 number imag = n_ImPart(a, coef); 1100 1100 bool out = n_IsZero(imag,coef); 1101 1101 n_Delete(&imag,coef); … … 1104 1104 1105 1105 bool ImagGreaterZero(number a, coeffs coef){ //Im(a)>0 1106 number imag = n gcImPart(a, coef);1106 number imag = n_ImPart(a, coef); 1107 1107 bool out = n_GreaterZero(imag,coef); 1108 1108 n_Delete(&imag,coef); -
Singular/dyn_modules/gfanlib/bbfan.cc
r80b6d36 r2206753 122 122 for (int c = 1; c <= cc; c++) 123 123 { 124 number temp1 = n lInit(1,NULL);125 number temp2 = n lSub(IMATELEM(*iv, r, c),temp1,coeffs_BIGINT);124 number temp1 = n_Init(1,coeffs_BIGINT); 125 number temp2 = n_Sub(IMATELEM(*iv, r, c),temp1,coeffs_BIGINT); 126 126 ivCopy->set(r,c,temp2); 127 n lDelete(&temp1,NULL);128 n lDelete(&temp2,NULL);127 n_Delete(&temp1,coeffs_BIGINT); 128 n_Delete(&temp2,coeffs_BIGINT); 129 129 } 130 130 gfan::ZMatrix* zm = bigintmatToZMatrix(ivCopy); -
Singular/misc_ip.cc
r80b6d36 r2206753 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 -
kernel/linear_algebra/interpolation.cc
r80b6d36 r2206753 1754 1754 mpz_init_set(n->z,temp->polycoef[a]); 1755 1755 n->s=3; 1756 n lNormalize(n, currRing->cf);1756 n_Normalize(n, currRing->cf); 1757 1757 p=pNSet(n); //a monomial 1758 1758 for (j=0;j<variables;j++) pSetExp(p,j+1,temp->polyexp[a][j]); -
libpolys/coeffs/OPAE.cc
r80b6d36 r2206753 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 r2206753 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 r2206753 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 -
libpolys/coeffs/OPAEQ.h
r80b6d36 r2206753 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 r2206753 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 -
libpolys/coeffs/OPAEp.h
r80b6d36 r2206753 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 r2206753 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) 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 r2206753 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 r2206753 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 r2206753 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 r2206753 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 r2206753 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 r2206753 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 r2206753 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 r2206753 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 r2206753 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 } … … 348 427 assume( getCoeffType(src) == n_R ); 349 428 350 double f=nrFloat(from); 429 double f=nrFloat(from); // FIXME? TODO? // extern float nrFloat(number n); 351 430 if (f==0.0) return INT_TO_SR(0); 352 431 int f_sign=1; -
libpolys/coeffs/longrat.h
r80b6d36 r2206753 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 r2206753 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 r2206753 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 r2206753 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 r2206753 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/rintegers.cc
r80b6d36 r2206753 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 25 #include <string.h> 11 26 12 27 #ifdef HAVE_RINGS 13 28 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 29 29 30 /// Our Type! 30 31 static const n_coeffType ID = n_Z; 32 33 number nrzCopy (number a, const coeffs r); 34 int nrzSize (number a, const coeffs r); 35 void nrzDelete (number *a, const coeffs r); 36 BOOLEAN nrzGreaterZero (number k, const coeffs r); 37 number nrzMult (number a, number b, const coeffs r); 38 number nrzInit (long i, const coeffs r); 39 int nrzInt (number &n, const coeffs r); 40 number nrzAdd (number a, number b, const coeffs r); 41 number nrzSub (number a, number b, const coeffs r); 42 void nrzPower (number a, int i, number * result, const coeffs r); 43 BOOLEAN nrzIsZero (number a, const coeffs r); 44 BOOLEAN nrzIsOne (number a, const coeffs r); 45 BOOLEAN nrzIsMOne (number a, const coeffs r); 46 BOOLEAN nrzIsUnit (number a, const coeffs r); 47 number nrzGetUnit (number a, const coeffs r); 48 number nrzDiv (number a, number b, const coeffs r); 49 number nrzExactDiv (number a, number b, const coeffs r); 50 number nrzIntMod (number a, number b, const coeffs r); 51 number nrzNeg (number c, const coeffs r); 52 number nrzInvers (number c, const coeffs r); 53 BOOLEAN nrzGreater (number a, number b, const coeffs r); 54 BOOLEAN nrzDivBy (number a, number b, const coeffs r); 55 int nrzDivComp (number a, number b, const coeffs r); 56 BOOLEAN nrzEqual (number a, number b, const coeffs r); 57 number nrzLcm (number a,number b, const coeffs r); 58 number nrzGcd (number a,number b, const coeffs r); 59 number nrzExtGcd (number a, number b, number *s, number *t, const coeffs r); 60 nMapFunc nrzSetMap (const coeffs src, const coeffs dst); 61 void nrzWrite (number &a, const coeffs r); 62 const char * nrzRead (const char *s, number *a, const coeffs r); 63 char * nrzName (number n, const coeffs r); 64 void nrzCoeffWrite (const coeffs r, BOOLEAN details); 65 #ifdef LDEBUG 66 BOOLEAN nrzDBTest (number a, const char *f, const int l, const coeffs r); 67 #endif 68 void nrzSetExp(int c, coeffs r); 69 void nrzInitExp(int c, coeffs r); 70 void nrzDelete(number *a, const coeffs r); 71 coeffs nrzQuot1(number c, const coeffs r); 72 73 //CanonicalForm nrzConvSingNFactoryN(number n, BOOLEAN setChar, const coeffs /*r*/); 74 //number nrzConvFactoryNSingN(const CanonicalForm n, const coeffs r); 75 76 number nrzMapQ(number from, const coeffs src, const coeffs dst); 77 31 78 32 79 omBin gmp_nrz_bin = omGetSpecBin(sizeof(mpz_t)); -
libpolys/coeffs/rintegers.h
r80b6d36 r2206753 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 r2206753 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*/ -
libpolys/coeffs/rmodulo2m.h
r80b6d36 r2206753 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 r2206753 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 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; -
libpolys/coeffs/rmodulon.h
r80b6d36 r2206753 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 r2206753 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 r2206753 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/polys/ext_fields/algext.cc
r80b6d36 r2206753 42 42 #include <coeffs/longrat.h> 43 43 44 #include <coeffs/longrat.h> 45 44 46 #include <polys/monomials/ring.h> 45 47 #include <polys/monomials/p_polys.h> … … 959 961 // int p = rChar(dst->extRing); 960 962 961 number q = nlModP(a, src, dst->extRing->cf); 963 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 964 963 965 poly result = p_NSet(q, dst->extRing); -
libpolys/polys/ext_fields/algext.h
r80b6d36 r2206753 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 r2206753 1149 1149 { 1150 1150 c = p_GetCoeff(p, ntRing); 1151 tmp = n lGcd(c, gcdOfCoefficients, ntCoeffs);1151 tmp = n_Gcd(c, gcdOfCoefficients, ntCoeffs); 1152 1152 n_Delete(&gcdOfCoefficients, ntCoeffs); 1153 1153 gcdOfCoefficients = tmp; … … 1158 1158 { 1159 1159 c = p_GetCoeff(p, ntRing); 1160 tmp = n lGcd(c, gcdOfCoefficients, ntCoeffs);1160 tmp = n_Gcd(c, gcdOfCoefficients, ntCoeffs); 1161 1161 n_Delete(&gcdOfCoefficients, ntCoeffs); 1162 1162 gcdOfCoefficients = tmp; … … 1514 1514 { 1515 1515 pGcd = pa; 1516 p_SetCoeff (pGcd, n lGcd (pGetCoeff(pGcd), pGetCoeff(pb), ntCoeffs), ntRing);1516 p_SetCoeff (pGcd, n_Gcd (pGetCoeff(pGcd), pGetCoeff(pb), ntCoeffs), ntRing); 1517 1517 } 1518 1518 else … … 1769 1769 return res; 1770 1770 } 1771 number nn=n lGetDenom(a,src);1772 number zz=n lGetNumerator(a,src);1771 number nn=n_GetDenom(a,src); 1772 number zz=n_GetNumerator(a,src); 1773 1773 number res=ntInit(p_NSet(zz,dst->extRing), dst); 1774 1774 fraction ff=(fraction)res; … … 1888 1888 if (n_IsZero(a, src)) return NULL; 1889 1889 // int p = rChar(dst->extRing); 1890 number q = nlModP(a, src, dst->extRing->cf); 1890 1891 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 1892 1892 1893 if (n_IsZero(q, dst->extRing->cf)) … … 2402 2403 2403 2404 cf->factoryVarOffset = R->cf->factoryVarOffset + rVar(R); 2404 extern char* naCoeffString(const coeffs r);2405 cf->cfCoeffString = naCoeffString; 2405 2406 cf->cfCoeffString = naCoeffString; // FIXME? TODO? // extern char* naCoeffString(const coeffs r); 2406 2407 2407 2408 cf->cfGreaterZero = ntGreaterZero; -
libpolys/polys/monomials/p_polys.cc
r80b6d36 r2206753 133 133 for(j=rl-1;j>=0;j--) 134 134 { 135 x[j]=NULL; // n lInit(0...) takes no memory135 x[j]=NULL; // n_Init(0...) takes no memory 136 136 } 137 137 if (n_IsZero(n,R)) p_Delete(&h,R); … … 2421 2421 { 2422 2422 #if 0 2423 d=n lGcd(h,pGetCoeff(p),r->cf);2424 n lDelete(&h,r->cf);2423 d=n_Gcd(h,pGetCoeff(p),r->cf); 2424 n_Delete(&h,r->cf); 2425 2425 h = d; 2426 #else 2427 nlInpGcd(h,pGetCoeff(p),r->cf);2428 #endif 2429 if(n lSize(h,r->cf)<smax)2426 #else 2427 STATISTIC(n_Gcd); nlInpGcd(h,pGetCoeff(p),r->cf); // FIXME? TODO? // extern void nlInpGcd(number &a, number b, const coeffs r); 2428 #endif 2429 if(n_Size(h,r->cf)<smax) 2430 2430 { 2431 2431 //if (TEST_OPT_PROT) PrintS("g"); … … 2435 2435 } 2436 2436 p = ph; 2437 if (!n lGreaterZero(pGetCoeff(p),r->cf)) h=nlNeg(h,r->cf);2438 if(n lIsOne(h,r->cf)) return;2437 if (!n_GreaterZero(pGetCoeff(p),r->cf)) h=n_InpNeg(h,r->cf); 2438 if(n_IsOne(h,r->cf)) return; 2439 2439 //if (TEST_OPT_PROT) PrintS("c"); 2440 2440 while (p!=NULL) 2441 2441 { 2442 2442 #if 1 2443 d = n lExactDiv(pGetCoeff(p),h,r->cf);2443 d = n_ExactDiv(pGetCoeff(p),h,r->cf); 2444 2444 p_SetCoeff(p,d,r); 2445 2445 #else 2446 nlInpExactDiv(pGetCoeff(p),h,r->cf);2446 STATISTIC(n_ExactDiv); nlInpExactDiv(pGetCoeff(p),h,r->cf); // no such function... ? 2447 2447 #endif 2448 2448 pIter(p); 2449 2449 } 2450 n lDelete(&h,r->cf);2450 n_Delete(&h,r->cf); 2451 2451 } 2452 2452 #endif … … 2462 2462 if (pNext(pNext(ph))==NULL) 2463 2463 { 2464 return n lGetNom(pGetCoeff(pNext(ph)),r->cf);2464 return n_GetNumerator(pGetCoeff(pNext(ph)),r->cf); 2465 2465 } 2466 2466 poly p=ph; 2467 number n1=n lGetNom(pGetCoeff(p),r->cf);2467 number n1=n_GetNumerator(pGetCoeff(p),r->cf); 2468 2468 pIter(p); 2469 number n2=n lGetNom(pGetCoeff(p),r->cf);2469 number n2=n_GetNumerator(pGetCoeff(p),r->cf); 2470 2470 pIter(p); 2471 2471 number d; … … 2474 2474 { 2475 2475 nlNormalize(pGetCoeff(p),r->cf); 2476 t=n lGetNom(pGetCoeff(p),r->cf);2476 t=n_GetNumerator(pGetCoeff(p),r->cf); 2477 2477 if (nlGreaterZero(t,r->cf)) 2478 2478 d=nlAdd(n1,t,r->cf); … … 2485 2485 if (p==NULL) break; 2486 2486 nlNormalize(pGetCoeff(p),r->cf); 2487 t=n lGetNom(pGetCoeff(p),r->cf);2487 t=n_GetNumerator(pGetCoeff(p),r->cf); 2488 2488 if (nlGreaterZero(t,r->cf)) 2489 2489 d=nlAdd(n2,t,r->cf); … … 2513 2513 if(ph==NULL) 2514 2514 { 2515 if (s2==-1) return n lCopy(d,r->cf);2515 if (s2==-1) return n_Copy(d,r->cf); 2516 2516 break; 2517 2517 } … … 2533 2533 } 2534 2534 } 2535 return n lGcd(d,d2,r->cf);2535 return n_Gcd(d,d2,r->cf); 2536 2536 } 2537 2537 #endif
Note: See TracChangeset
for help on using the changeset viewer.