Go to the source code of this file.
|
void | out_cf (const char *s1, const CanonicalForm &f, const char *s2) |
|
static void | conv_RecPP (const CanonicalForm &f, int *exp, sBucket_pt result, ring r) |
|
static void | convRecTrP (const CanonicalForm &f, int *exp, poly &result, int offs, const ring r) |
|
static number | convFactoryNSingAN (const CanonicalForm &f, const ring r) |
|
poly | convFactoryPSingP (const CanonicalForm &f, const ring r) |
|
CanonicalForm | convSingPFactoryP (poly p, const ring r) |
|
int | convFactoryISingI (const CanonicalForm &f) |
|
CanonicalForm | convSingAPFactoryAP (poly p, const Variable &a, const ring r) |
|
static void | convRecAP_R (const CanonicalForm &f, int *exp, poly &result, int par_start, int var_start, const ring r) |
|
poly | convFactoryAPSingAP_R (const CanonicalForm &f, int par_start, int var_start, const ring r) |
|
poly | convFactoryAPSingAP (const CanonicalForm &f, const ring r) |
|
CanonicalForm | convSingAFactoryA (poly p, const Variable &a, const ring r) |
|
poly | convFactoryASingA (const CanonicalForm &f, const ring r) |
|
CanonicalForm | convSingTrPFactoryP (poly p, const ring r) |
|
BOOLEAN | convSingTrP (poly p, const ring r) |
|
poly | convFactoryPSingTrP (const CanonicalForm &f, const ring r) |
|
◆ TRANSEXT_PRIVATES
#define TRANSEXT_PRIVATES |
◆ conv_RecPP()
Definition at line 53 of file clapconv.cc.
57 if ( !
f.inCoeffDomain() )
69 number n=r->cf->convFactoryNSingN(
f, r->cf);
static void conv_RecPP(const CanonicalForm &f, int *exp, sBucket_pt result, ring r)
class to iterate through CanonicalForm's
static FORCE_INLINE BOOLEAN n_IsZero(number n, const coeffs r)
TRUE iff 'n' represents the zero element.
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
gmp_float exp(const gmp_float &a)
static void p_SetExpV(poly p, int *ev, const ring r)
static poly p_Init(const ring r, omBin bin)
void sBucket_Merge_m(sBucket_pt bucket, poly p)
◆ convFactoryAPSingAP()
Definition at line 151 of file clapconv.cc.
poly convFactoryAPSingAP_R(const CanonicalForm &f, int par_start, int var_start, const ring r)
static int rPar(const ring r)
(r->cf->P)
◆ convFactoryAPSingAP_R()
Definition at line 141 of file clapconv.cc.
static void convRecAP_R(const CanonicalForm &f, int *exp, poly &result, int par_start, int var_start, const ring r)
#define omFreeSize(addr, size)
static short rVar(const ring r)
#define rVar(r) (r->N)
◆ convFactoryASingA()
Definition at line 252 of file clapconv.cc.
264 poly t=
p_Init (r->cf->extRing);
273 if( r->cf->extRing !=
NULL )
274 if (r->cf->extRing->qideal->m[0]!=
NULL)
276 poly
l=r->cf->extRing->qideal->m[0];
static number convFactoryNSingAN(const CanonicalForm &f, const ring r)
poly p_PolyDiv(poly &p, const poly divisor, const BOOLEAN needResult, const ring r)
assumes that p and divisor are univariate polynomials in r, mentioning the same variable; assumes div...
static poly p_Add_q(poly p, poly q, const ring r)
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent @Note: VarOffset encodes the position in p->exp
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent @Note: the integer VarOffset encodes:
◆ convFactoryISingI()
Definition at line 110 of file clapconv.cc.
112 if (!
f.isImm())
WerrorS(
"int overflow in det");
void WerrorS(const char *s)
◆ convFactoryNSingAN()
Definition at line 243 of file clapconv.cc.
number n_convFactoryNSingN(const CanonicalForm n, const coeffs r)
◆ convFactoryPSingP()
Definition at line 40 of file clapconv.cc.
sBucket_pt sBucketCreate(const ring r)
void sBucketDestroyMerge(sBucket_pt bucket, poly *p, int *length)
◆ convFactoryPSingTrP()
Definition at line 334 of file clapconv.cc.
static void convRecTrP(const CanonicalForm &f, int *exp, poly &result, int offs, const ring r)
◆ convRecAP_R()
static void convRecAP_R |
( |
const CanonicalForm & |
f, |
|
|
int * |
exp, |
|
|
poly & |
result, |
|
|
int |
par_start, |
|
|
int |
var_start, |
|
|
const ring |
r |
|
) |
| |
|
static |
Definition at line 156 of file clapconv.cc.
160 if ( !
f.inCoeffDomain() )
183 for (
i = 1;
i <= var_start;
i++ )
189 for (
i = par_start+1;
i <= var_start+
rPar(r);
i++ )
poly convFactoryASingA(const CanonicalForm &f, const ring r)
static long p_AddExp(poly p, int v, long ee, ring r)
static void p_Setm(poly p, const ring r)
◆ convRecTrP()
Definition at line 345 of file clapconv.cc.
349 if (
f.level() > offs )
354 exp[
l-offs] =
i.exp();
363 for (
int i =
rVar(r);
i>0;
i-- )
poly convFactoryPSingP(const CanonicalForm &f, const ring r)
number ntInit(long i, const coeffs cf)
◆ convSingAFactoryA()
Definition at line 200 of file clapconv.cc.
221 mpz_init_set( dummy, (
p_GetCoeff(
p,r->cf->extRing )->z) );
235 if ( (e =
p_GetExp(
p, 1, r->cf->extRing )) != 0 )
static const int SW_RATIONAL
set to 1 for computations over Q
static FORCE_INLINE long n_Int(number &n, const coeffs r)
conversion of n to an int; 0 if not possible in Z/pZ: the representing int lying in (-p/2 ....
CanonicalForm make_cf(const mpz_ptr n)
static BOOLEAN rField_is_Zp_a(const ring r)
◆ convSingAPFactoryAP()
Definition at line 116 of file clapconv.cc.
127 for (
int i = 1;
i <= n;
i++ )
const CanonicalForm CFMap CFMap & N
CanonicalForm convSingAFactoryA(poly p, const Variable &a, const ring r)
factory's class for variables
◆ convSingPFactoryP()
◆ convSingTrP()
Definition at line 320 of file clapconv.cc.
static FORCE_INLINE void n_Normalize(number &n, const coeffs r)
inplace-normalization of n; produces some canonical representation of n;
static BOOLEAN p_IsConstantPoly(const poly p, const ring r)
◆ convSingTrPFactoryP()
Definition at line 284 of file clapconv.cc.
296 WerrorS(
"conversion error: denominator!= 1");
309 for (
int i = n;
i > 0;
i-- )
CanonicalForm convSingPFactoryP(poly p, const ring r)
◆ out_cf()
Definition at line 90 of file cf_factor.cc.
93 if (
f.isZero()) printf(
"+0");
95 else if (!
f.inBaseDomain() )
101 if (
i.coeff().isOne())
104 if (e==0) printf(
"1");
108 if (e!=1) printf(
"^%d",e);
117 if (e!=1) printf(
"^%d",e);
142 printf(
"+%ld",
f.intval());
151 char * str =
new char[mpz_sizeinbase(
m, 10 ) + 2];
152 str = mpz_get_str( str, 10,
m );
161 char * str =
new char[mpz_sizeinbase(
m, 10 ) + 2];
162 str = mpz_get_str( str, 10,
m );
163 puts(str);putchar(
'/');
167 str =
new char[mpz_sizeinbase(
m, 10 ) + 2];
168 str = mpz_get_str( str, 10,
m );
183 if (
f.inExtension()) printf(
"E(%d)",
f.level());
#define GaloisFieldDomain
void out_cf(const char *s1, const CanonicalForm &f, const char *s2)
cf_algorithm.cc - simple mathematical algorithms.
void gmp_denominator(const CanonicalForm &f, mpz_ptr result)
void gmp_numerator(const CanonicalForm &f, mpz_ptr result)
static long imm2int(const InternalCF *const imm)