|
D.2.6.2 changeord
Procedure from library ring.lib (see ring_lib).
- Usage:
- changeord(newr,o[,r]); newr,o=strings, r=ring/qring
- Create:
- create a new ring with name `newr` and make it the basering if r is
an existing ring/qring [default: r=basering].
The new ring differs from the old ring only in the ordering. If, say,
(newr,o) = ("R","wp(2,3),dp") and the ring r exists and has >=3
variables, the new basering will have name R and ordering wp(2,3),dp.
- Return:
- No return value
- Note:
- This proc uses 'execute' or calls a procedure using 'execute'.
If you use it in your own proc, let the local names of your proc
start with @.
Example:
| LIB "ring.lib";
ring r=0,(x,y,u,v),(dp(2),ds);
changeord("R","wp(2,3),dp"); R; "";
==> // basering is now R
==> // characteristic : 0
==> // number of vars : 4
==> // block 1 : ordering wp
==> // : names x y
==> // : weights 2 3
==> // block 2 : ordering dp
==> // : names u v
==> // block 3 : ordering C
==>
ideal i = x^2,y^2-u^3,v;
qring Q = std(i);
changeord("Q'","lp",Q); Q';
==> // basering is now Q'
==> // characteristic : 0
==> // number of vars : 4
==> // block 1 : ordering lp
==> // : names x y u v
==> // block 2 : ordering C
==> // quotient ring from ideal
==> _[1]=v
==> _[2]=x2
==> _[3]=y2-u3
kill R,Q,Q';
if(system("with","Namespaces")) {
if( nameof(Current) == "Ring" ) {
kill Top::R,Top::Q';
} else {
kill Ring::R,Ring::Q';
}
}
|
|