# Singular

##### 7.5.23.0. leftOre
Procedure from library `olga.lib` (see olga_lib).

Usage:
leftOre(s, r, locType, locData), poly s, r, int locType, list/vector/intvec locData

Purpose:
compute left Ore data for a given tuple (s,r)

Assume:
s is in the denominator set determined via locType and locData

Return:
list

Note:
- the first entry of the list is a vector [ts,tr] such that ts*r=tr*s - the second entry of the list is a description of all choices for ts

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 // left Ore // monoidal localization poly g1 = x+3; poly g2 = x*y; list L = g1,g2; poly g = g1^2*g2; poly f = Dx; list rm = leftOre(g, f, 0, L); print(rm[1]); ==> [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] rm[2]; ==> _[1]=x^8*y^4+12*x^7*y^4+54*x^6*y^4+108*x^5*y^4+81*x^4*y^4 rm[1][2]*g-rm[1][1]*f; ==> 0 // geometric localization ideal p = x-1, y-3; f = Dx; g = x^2+y; list rg = leftOre(g, f, 1, p); print(rg[1]); ==> [x^4+2*x^2*y+y^2,x^2*Dx+y*Dx-2*x] rg[2]; ==> _[1]=x^4+2*x^2*y+y^2 rg[1][2]*g-rg[1][1]*f; ==> 0 // rational localization intvec rat = 1; f = Dx+Dy; g = x; list rr = leftOre(g, f, 2, rat); print(rr[1]); ==> [x^2,x*Dx+x*Dy-1] rr[2]; ==> _[1]=x^2 rr[1][2]*g-rr[1][1]*f; ==> 0 ```