polynomial map for ideals/module/matrix map_id: the ideal to map map_r: the base ring for map_id image_id: the image of the variables image_r: the base ring for image_id nMap: map for coeffcients
108 return id_SubstPoly(map_id,var,p,preimage_r,image_r,nMap);
114 && (map_id->nrows==1)
115 && (map_id->rank==1))
125 for(i=
IDELEMS(image_id)-1;i>=0;i--)
128 if ((t==0) || (t>1)) sz_more++;
130 if (((sz_l > sz*2) && (sz_more != 1))||(sz<5))
140 int C=((
matrix)map_id)->cols();
141 int R=((
matrix)map_id)->rows();
143 int N = preimage_r->N;
146 for (i=R*C-1;i>=0;i--)
148 if (map_id->m[i]!=
NULL)
150 m->
m[
i]=
maEval((
map)image_id, map_id->m[i], preimage_r, nMap, (ideal)cache, image_r);
156 ii->
rank=((ideal)map_id)->rank;
CanonicalForm map(const CanonicalForm &primElem, const Variable &alpha, const CanonicalForm &F, const Variable &beta)
map from to such that is mapped onto
#define idDelete(H)
delete an ideal
number ndCopyMap(number a, const coeffs aRing, const coeffs r)
int maMaxDeg_Ma(ideal a, ring preimage_r)
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...
const CanonicalForm CFMap CFMap & N
static BOOLEAN rIsPluralRing(const ring r)
we must always have this test!
void PrintS(const char *s)
ideal fast_map_common_subexp(const ideal map_id, const ring map_r, const ideal image_id, const ring image_r)
static unsigned pLength(poly a)
matrix mpNew(int r, int c)
create a r x c zero-matrix
static void find_subst_for_map(const ring preimage_r, const ring image_r, const ideal image, int &var, poly &p)
ideal id_SubstPoly(ideal id, int var, poly image, const ring preimage_r, const ring image_r, const nMapFunc nMap)
poly maEval(map theMap, poly p, ring preimage_r, nMapFunc nMap, ideal s, const ring dst_r)