|
D.2.8.10 mapall
Procedure from library ring.lib (see ring_lib).
- Usage:
- mapall(R,i[,s]); R=ring/qring, i=ideal of basering, s=string
- Create:
- map all objects of ring R (of type poly/ideal/vector/module/number/
matrix, map) into the basering by mapping the j-th variable of R to
the j-th generator of the ideal i. If no 3rd argument is present, the
names are the same as in R. If, say, f is a polynomial in R and the 3rd
argument is the string "R", then f is mapped to f_R etc.
- Return:
- no return value.
- Note:
- This procedure has the same effect as defining a map, say psi, by
map psi=R,i; and then applying psi to all objects of R. In particular,
maps from R to some ring S are composed with psi, creating thus a map
from the basering to S.
mapall may be combined with copyring to change vars for all objects.
The 3rd argument is useful in order to avoid conflicts of names, the
empty string is allowed.
- Caution:
- mapall does not work for locally defined names.
Example:
| LIB "ring.lib";
// The example is not shown since mapall does not work in a procedure
// (and hence not in the example procedure). Try the following commands:
// ring R=0,(x,y,z),dp;
// ideal j=x,y,z;
// matrix M[2][3]=1,2,3,x,y,z;
// map phi=R,x2,y2,z2;
// ring S=0,(a,b,c),ds;
// ideal i=c,a,b;
// mapall(R,i); //map from R to S: x->c, y->a, z->b
// names(S);
// j; print(M); phi; //phi maps R to S: x->c2, y->a2, z->b2
// ideal i1=a2,a+b,1;
// mapall(R,i1,""); //map from R to S: x->a2, y->a+b, z->1
// names(S);
// j_; print(M_); phi_;
// changevar("T","x()",R); //change vars in R and call result T
// mapall(R,maxideal(1)); //identity map from R to T
// names(T);
// j; print(M); phi;
// kill R,S,T;
|
|