22 int *perm=(
int *)
omAlloc0((preimage_r->N+1)*
sizeof(int));
25 if (image->m[
i]!=
NULL)
33 omFreeSize(perm,(preimage_r->N+1)*
sizeof(
int));
44 omFreeSize(perm,(preimage_r->N+1)*
sizeof(
int));
51 omFreeSize(perm,(preimage_r->N+1)*
sizeof(
int));
70 const ideal image,
const ring image_r,
const nMapFunc nMap)
72 if ((
rPar(preimage_r)>0)||(
rPar(image_r)>0))
return NULL;
78 for (
int i=
R*C-1;
i>=0;
i--)
87 ii->rank=((ideal)to_map)->rank;
88 omFreeSize(perm,(preimage_r->N+1)*
sizeof(
int));
static int si_min(const int a, const int b)
number(* nMapFunc)(number a, const coeffs src, const coeffs dst)
maps "a", which lives in src, into dst
static FORCE_INLINE BOOLEAN n_IsOne(number n, const coeffs r)
TRUE iff 'n' represents the one element.
const Variable & v
< [in] a sqrfree bivariate poly
matrix ma_ApplyPermForMap(const matrix to_map, const ring preimage_r, const ideal image, const ring image_r, const nMapFunc nMap)
helper function for maMapIdeal mapping ideal/matrix/module for the case of a permutation: maps the id...
static int * find_perm_for_map(const ring preimage_r, const ring image_r, const ideal image)
matrix mpNew(int r, int c)
create a r x c zero-matrix
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
#define omFreeSize(addr, size)
poly p_PermPoly(poly p, const int *perm, const ring oldRing, const ring dst, nMapFunc nMap, const int *par_perm, int OldPar, BOOLEAN use_mult)
int p_IsUnivariate(poly p, const ring r)
return i, if poly depends only on var(i)
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent @Note: the integer VarOffset encodes:
static int rPar(const ring r)
(r->cf->P)