Singular Manual: ensureRightNcfrac

| ##### 7.8.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";)
    ==> // ** args must be 4 in     system("install", "ncloc", "string", nclocToS\
       tring, 1);
    ==> // ** args must be 4 in     system("install", "ncfrac", "string", ncfracT\
       oString, 1);
    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

User manual for Singular version 4-1-1p4, 2018, generated by texi2html.