|
7.5.21.0. ensureRightNcfrac
Procedure from library ncfrac.lib (see ncfrac_lib).
- Usage:
- ensureLeftNcfrac(frac), ncfrac frac
- Purpose:
- ensures that frac has a right representation (by computing it if not
alreaDy known)
- Return:
- ncfrac, a representation of frac which has a right representation
Example:
| LIB "ncfrac.lib";
==> // ** redefining testNcfrac (LIB "ncfrac.lib";)
==> // ** redefining testNcloc ( LIB "ncloc.lib";)
ring R = 0,(x,y,Dx,Dy),dp;
def S = Weyl();
setring S; S;
==> // coefficients: QQ
==> // number of vars : 4
==> // block 1 : ordering dp
==> // : names x y Dx Dy
==> // block 2 : ordering C
==> // noncommutative relations:
==> // Dxx=x*Dx+1
==> // Dyy=y*Dy+1
// monoidal localization
poly g = x;
poly f = Dx;
ncloc loc0 = g;
ncfrac frac0 = [g,f,0,0];
frac0.loc = loc0;
ncfrac rm = ensureRightNcfrac(frac0);
print(rm);
==> left repr.: (x,Dx)
==> right repr.: (x*Dx+2,x^2)
f*rm.rden-g*rm.rnum;
==> 0
// geometric localization
g = x+y;
f = Dx+Dy;
ncloc loc1 = ideal(x-1,y-3);
ncfrac frac1 = [g,f,0,0];
frac1.loc = loc1;
ncfrac rg = ensureRightNcfrac(frac1);
print(rg);
==> left repr.: (x+y,Dx+Dy)
==> right repr.: (x*Dx+y*Dx+x*Dy+y*Dy+4,x^2+2*x*y+y^2)
f*rg.rden-g*rg.rnum;
==> 0
// rational localization
intvec rat = 1;
f = Dx+Dy;
g = x;
ncloc loc2 = rat;
ncfrac frac2 = [g,f,0,0];
frac2.loc = loc2;
ncfrac rr = ensureRightNcfrac(frac2);
print(rr);
==> left repr.: (x,Dx+Dy)
==> right repr.: (x*Dx+x*Dy+2,x^2)
f*rr.rden-g*rr.rnum;
==> 0
|
|