NCFlatExt
description:
[IsFlatExt,SDP_data,rank_d,V_new,M_d,var,sizeM_small,tol] = NCFlatExt(f) checks whether the extension of the dual moment matrix M_{d} over M_{d-1}, where d=deg(f), is flat.
arguments:
f is an NCpoly representing a polynomial.
output:
IsFlatExt == 1 iff there is a flat extension
SDP_data is a structure holding all the data used in SDP solver, undelying the M_d problem
rank_d equals the rank of the matrix M_d (and the rank of M_{d-1} in case of flatness)
V_new is a cell representing the vector of all monomials with degree <=d
M_d is the M_{d} moment matrix (dual to the NCcycSos problem)
var is a cell of all variables contained in the underlying polynomial f
sizeM_small is the size of the square matrix M_{d-1}
tol equals the tolerance used to compute rank_d
possible usage:
NCFlatExt(f)
see also:
example:
>> IsFlatExt = NCFlatExt(BMV(8,2))
***** Polynomial does not have a flat extension *****
IsFlatExt = 0
>> f = 3 + x^2 + 2*x^3 + 2*x^4 + x^6 - 4*x^4*y + x^4*y^2 + 4*x^3*y + 2*x^3*y^2 - 2*x^3*y^3 + 2*x^2*y - x^2*y^2 + 2*x^2*y^3 - 4*x*y + 8*x*y*x*y + 4*x*y^2 + 6*x*y^4 - 2*y + y^2 - 4*y^3 + 2*y^4 + 2*y^6;
>> IsFlatExt = NCFlatExt(f)
***** Polynomial has a flat extension *****
IsFlatExt = 1