# Singular

##### 7.5.23.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 ==> // 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 ```