Macaulay2 » Documentation
Packages » SumsOfSquares :: RoundTol
next | previous | forward | backward | up | index | toc

RoundTol -- tolerance for rational rounding


The optional argument RoundTol specifies the minimal rounding precision in $d$ binary digits.

Sums-of-squares problems are solved numerically using a semidefinite programming solver, and afterwards the package attempts to round the floating point solution to rational numbers. The rounding strategy is guaranteed to work whenever the space of Gram matrices is full dimensional. For optimization problems the rounding may cause a loss in optimality. The argument RoundTol allows to control the trade-off between optimality and simplicity. Higher values of RoundTol lead to better solutions.

i1 : R = QQ[x,z];
i2 : f = x^4+x^2+z^6-3*x^2*z^2;
i3 : (bound,sol) = lowerBound (f,RoundTol=>4);
i4 : bound

o4 = - --

o4 : QQ
i5 : (bound,sol) = lowerBound (f,RoundTol=>12);
i6 : bound

o6 = - ----

o6 : QQ

One can also skip the rounding by setting RoundTol => infinity.

i7 : (bound,sol) = lowerBound (f,RoundTol=>infinity);
i8 : bound

o8 = -.177978516316947

o8 : RR (of precision 53)

References: Computing sum of squares decompositions with rational coefficients, H. Peyrl and P. Parrilo, in Theoretical Computer Science 409 (2008) p. 269–281.


See also

Functions with optional argument named RoundTol :

For the programmer

The object RoundTol is a symbol.