Singular Manual: convertLeftToRightFraction

| ##### 7.5.21.0. convertLeftToRightFraction Procedure from library `olga.lib` (see olga_lib). Usage: convertLeftToRightFraction(frac, locType, locData), vector frac, int locType, list/vector/intvec locData Purpose: determine a right fraction representation of a given fraction Assume: Return: vector Note: - the returned vector contains a repr. of frac as a right fraction, - if the right 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 g = x;
    poly f = Dx;
    vector fracm = [g,f,0,0];
    list L = g;
    vector rm = convertLeftToRightFraction(fracm, 0, L);
    print(rm);
    ==> [x,Dx,x*Dx+2,x^2]
    f*rm[4]-g*rm[3];
    ==> 0
    // geometric localization
    g = x+y;
    f = Dx+Dy;
    vector fracg = [g,f,0,0];
    ideal p = x-1, y-3;
    vector rg = convertLeftToRightFraction(fracg, 1, p);
    print(rg);
    ==> [x+y,Dx+Dy,x*Dx+y*Dx+x*Dy+y*Dy+4,x^2+2*x*y+y^2]
    f*rg[4]-g*rg[3];
    ==> 0
    // rational localization
    intvec rat = 1;
    f = Dx+Dy;
    g = x;
    vector fracr = [g,f,0,0];
    vector rr = convertLeftToRightFraction(fracr, 2, rat);
    print(rr);
    ==> [x,Dx+Dy,x*Dx+x*Dy+2,x^2]
    f*rr[4]-g*rr[3];
    ==> 0

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