47{
49#ifdef HAVE_PLURAL
53 {
56 while((i<preimage_r->
N)&&(perm[
i]==0))
i++;
58 {
61 for(;
i<=preimage_r->N;
i++)
62 {
63 if (perm[prev_nonnull] > perm[
i])
64 {
66 {
67 Warn(
"imap not usable for permuting variables, use map (%s <-> %s)", preimage_r->names[prev_nonnull-1],preimage_r->names[
i-1]);
68 }
70 break;
71 }
72 else
74 }
75 }
76 }
77#endif
79 int N = preimage_r->N;
80#if 0
85 if (par_perm!=
NULL)
for(
i=0;
i<P;
i++)
Print(
"%d -> %d ",
i,par_perm[
i]);
87#endif
88
92 {
94 if (P!=0)
95 {
96
102 }
103 else
104 {
106 number a = nMap((number)data, preimage_r->cf,
currRing->cf);
108 {
110
111
112
113
114
115
116
117
118 }
119 #ifdef LDEBUG
121 #endif
123
124 }
125 break;
127 if (
129#ifdef HAVE_SHIFTBBA
131#endif
132 )
134 else
137 else
138 {
140 }
143 break;
146 if (
148#ifdef HAVE_SHIFTBBA
150#endif
151 )
153 else
156 else
157 {
158 p_Test((poly)data,preimage_r);
160 }
164 break;
169 {
170 int C=((
matrix)data)->cols();
177 {
178 tmpR=((
map)data)->preimage;
180 }
181 if (
183#ifdef HAVE_SHIFTBBA
185#endif
186 )
187 {
188 for (
i=
R*C-1;
i>=0;
i--)
189 {
192 }
193 }
195 {
196 for (
i=
R*C-1;
i>=0;
i--)
197 {
199 nMap,par_perm,P,use_mult);
201 }
202 }
203 else
204 {
207 for (
i=
R*C-1;
i>=0;
i--)
208 {
211 }
213 }
215 {
216 ((
map)data)->preimage=tmpR;
218 }
219 else
220 {
222 }
225 break;
226 }
227
229 {
233 for(
i=0;
i<=
l->nr;
i++)
234 {
237 {
239 preimage_r,perm,par_perm,P,nMap))
240 {
245 }
246 }
247 else
248 {
250 }
251 }
252 res->data=(
char *)ml;
253 break;
254 }
255 default:
256 {
258 }
259 }
261}
const CanonicalForm CFMap CFMap & N
CanonicalForm map(const CanonicalForm &primElem, const Variable &alpha, const CanonicalForm &F, const Variable &beta)
map from to such that is mapped onto
void Clean(ring r=currRing)
INLINE_THIS void Init(int l=0)
static FORCE_INLINE BOOLEAN nCoeff_is_Extension(const coeffs r)
#define n_Test(a, r)
BOOLEAN n_Test(number a, const coeffs r)
static FORCE_INLINE BOOLEAN nCoeff_is_algExt(const coeffs r)
TRUE iff r represents an algebraic extension field.
static FORCE_INLINE void n_Normalize(number &n, const coeffs r)
inplace-normalization of n; produces some canonical representation of n;
const CanonicalForm int s
poly maMapPoly(const poly map_p, const ring map_r, const ideal image_id, const ring image_r, const nMapFunc nMap)
polynomial map for poly (vector) map_p: the poly (vector) to map map_r: the base ring for map_p image...
const char * Tok2Cmdname(int tok)
#define idDelete(H)
delete an ideal
poly maEval(map theMap, poly p, ring preimage_r, nMapFunc nMap, ideal s, const ring dst_r)
int maMaxDeg_Ma(ideal a, ring preimage_r)
poly p_MinPolyNormalize(poly p, const ring r)
BOOLEAN maApplyFetch(int what, map theMap, leftv res, leftv w, ring preimage_r, int *perm, int *par_perm, int P, nMapFunc nMap)
#define omFreeBin(addr, bin)
poly n_PermNumber(const number z, const int *par_perm, const int, const ring src, const ring dst)
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)
poly prCopyR(poly p, ring src_r, ring dest_r)
void PrintS(const char *s)
poly sBucketPeek(sBucket_pt b)