|
D.15.30.8 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
==> // 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
|
|