Singular Manual: convertRightToLeftFraction

| ##### 7.5.21.0. convertRightToLeftFraction Procedure from library `olga.lib` (see olga_lib). Usage: convertRightToLeftFraction(frac, locType, locData), vector frac, int locType, list/vector/intvec locData Purpose: determine a left fraction representation of a given fraction Assume: Return: vector Note: - the returned vector contains a repr. of frac as a left fraction - if the left representation of frac is already specified, frac will be returned. Example:
    LIB "olga.lib";
    ring R = 0,(x,y,Dx,Dy),dp;
    def S = Weyl();
    setring S; S;
    ==> // coefficients: QQ considered as a field
    ==> // 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 g1 = x+3;
    poly g2 = x*y;
    list L = g1,g2;
    poly g = g1^2*g2;
    poly f = Dx;
    vector fracm = [0,0,f,g];
    vector rm = convertRightToLeftFraction(fracm, 0, L);
    print(rm);
    ==> [x^8*y^4+12*x^7*y^4+54*x^6*y^4+108*x^5*y^4+81*x^4*y^4,x^5*y^3*Dx+6*x^4*y^\
       3*Dx-3*x^4*y^3+9*x^3*y^3*Dx-12*x^3*y^3-9*x^2*y^3,Dx,x^3*y+6*x^2*y+9*x*y]
    rm[2]*g-rm[1]*f;
    ==> 0
    // geometric localization
    ideal p = x-1, y-3;
    f = Dx;
    g = x^2+y;
    vector fracg = [0,0,f,g];
    vector rg = convertRightToLeftFraction(fracg, 1, p);
    print(rg);
    ==> [x^4+2*x^2*y+y^2,x^2*Dx+y*Dx-2*x,Dx,x^2+y]
    rg[2]*g-rg[1]*f;
    ==> 0
    // rational localization
    intvec rat = 1;
    f = Dx+Dy;
    g = x;
    vector fracr = [0,0,f,g];
    vector rr = convertRightToLeftFraction(fracr, 2, rat);
    print(rr);
    ==> [x^2,x*Dx+x*Dy-1,Dx+Dy,x]
    rr[2]*g-rr[1]*f;
    ==> 0

User manual for Singular version 4.4.1, 2025, generated by texi2html.