Home Online Manual
Top
Back: ensureLeftNcfrac
Forward: negateNcfrac
FastBack:
FastForward:
Up: ncfrac_lib
Top: Singular Manual
Contents: Table of Contents
Index: Index
About: About this document

D.15.25.8 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