593 Werror(
"Char not 0, pFastPowerMC not implemented for this case");
595 Werror(
"not implemented for so small n, recursion fails");
597 Werror(
"not implemented for so small length of f, recursion fails");
599 number* facult=(number*)
omAlloc((
n+1)*
sizeof(number));
605 facult[
i]=
n_Mult(this_n,facult[i-1],
r->cf);
623 f_iter=
pNext(f_iter);
638 MC_iterate(
f,
n,
r,f_len,&facult[0], &exp[0], &f_terms[0],erg_bucket,0,0,one,zw,tmp, term_potences);
653 for (i=0;i<f_len;i++)
void kBucketClear(kBucket_pt bucket, poly *p, int *length)
void kBucketInit(kBucket_pt bucket, poly lm, int length)
static FORCE_INLINE number n_Init(long i, const coeffs r)
a number representing i in the given coeff field/ring r
const CanonicalForm CFMap CFMap int &both_non_zero int n
#define omUnGetSpecBin(bin_ptr)
kBucket_pt kBucketCreate(ring bucket_ring)
Creation/Destruction of buckets.
static int pLength(poly a)
static FORCE_INLINE number n_Mult(number a, number b, const coeffs r)
return the product of 'a' and 'b', i.e., a*b
ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
void kBucketDestroy(kBucket_pt *bucket_pt)
static poly p_MonMultCMB(poly p, poly q, ring r)
static void p_Delete(poly *p, const ring r)
#define omGetSpecBin(size)
static void MC_iterate(poly f, int n, ring r, int f_len, number *facult, int *exp, poly *f_terms, kBucket_pt erg_bucket, int pos, int sum, number coef, poly &zw, poly tmp, poly **term_pot)
static FORCE_INLINE void n_Delete(number *p, const coeffs r)
delete 'p'
static poly p_Init(const ring r, omBin bin)
poly p_ISet(long i, const ring r)
returns the poly representing the integer i
void Werror(const char *fmt,...)