Border basis

Border basis

using PolyExp
x = @ring x1 x2        # 2 variables
f = function(e)        # a moment function (Vector{Int64} -> Float64)
    2^e[1]*3^e[2]-3*4^e[1]+1.0
end
L = monoms(x,5)        # list of monomials of degree <= 5
sigma = series(f, L)   # generating series (in the dual monomials)
-11.0dx1^2dx2^2 - 751.0dx1^4 - 43.0dx1^2 + 61.0dx1^2dx2^3 + 25.0dx2^3 - 5.0dx1*dx2 + 79.0dx2^4 - 35.0dx1^2dx2 - 719.0dx1^4dx2 - 119.0dx1^3dx2^2 - 183.0dx1^3 + 43.0dx1*dx2^3 - 3039.0dx1^5 + 151.0dx1*dx2^4 - 167.0dx1^3dx2 + 241.0dx2^5 - 9.0dx1 + dx2 + 7.0dx2^2 + 7.0dx1*dx2^2 - 1.0
B, K, P = bbs(sigma,L); # Border basis of sigma using the moments of L
B                       # Basis of the quotient
3-element Array{DynamicPolynomials.Polynomial{true,Float64},1}:
 1.0
 x2 
 x1
K                       # Border relations
3-element Array{DynamicPolynomials.Polynomial{true,Float64},1}:
 x2^2 - 4.0x2 + 3.0        
 x1x2 - 1.0x1 - 2.0x2 + 2.0
 x1^2 - 5.0x1 + 1.0x2 + 3.0
P                       # Orthogonal basis of the quotient for sigma
3-element Array{DynamicPolynomials.Polynomial{true,Float64},1}:
 x2^2
 x1x2
 x1^2