Skip to content

Transitioning from other toolboxes

Torbjørn Cunis edited this page Dec 11, 2025 · 2 revisions

The following comparison is supposed to ease transitioning from other toolboxes for sum-of-squares or general optimization to CaΣoS.

Note

This section only shows a subset of the CaΣoS interface. For full details, please see the descriptions above.

SOSOPT

SOSOPT Description CaΣoS
polynomial(0) Constant polynomial. casos.PS(0)
pvar('x') Scalar indeterminate variable. casos.PS('x')
pvar('q') Scalar decision variable. casos.PS.sym('q')
mpvar('x',n,m) Matrix of indeterminate variables. casos.PS('x',n,m)
mpvar('Q',n,m) Matrix decision variable. casos.PS.sym('Q',n,m)
monomials(x,deg) Vector of monomials. monomials(x,deg)
polydecvar('c',z) Polynomial decision variable $c^\top z$. casos.PS.sym('c',z)
sosdecvar('Q',z) Gram decision variable $z^\top Q z$. casos.PS.sym('Q',z,'gram')
jacobian(f,x) Partial derivative w.r.t. indeterminates. nabla(f,x)
jacobian(p,q) Partial derivative w.r.t. symbolic variables. Not yet supported
constr = (expr >= 0) Sum-of-squares expression constraint. sos.g = expr; opts.Kc.sos = 1
constr = (svar >= 0) Sum-of-squares variable constraint
(requires Gram variable).
sos.x = svar; opts.Kx.sos = 1
constr = (p == q) Polynomial expression equality. sos.g = (p - q); opts.Kc.lin = 1
lbg = 0; ubg = 0
constr = (q <= 1) Scalar variable inequality. sos.x = q; opts.Kx.lin = 1
lbx = -inf; ubx = 1
sosopt(constr,x) Sum-of-squares feasibility. S = casos.sossol('S','solver',sos,opts)
sosopt(constr,x,obj) Sum-of-squares optimization. sos.f = obj
S = casos.sossol('S','solver',sos,opts)
[info,dopt] = sosopt(...) Solve affine problem. S = casos.sossol('S','solver',sos,opts)
sol = S(...)
info.feas Retrieve feasibility info. S.stats.UNIFIED_RETUR_STATUS
info.obj Retrieve optimal value. sol.f
gsosopt(constr,x,obj) Quasi-convex optimization (bisection). sos.f = obj
S = casos.qcsossol('S','bisection',sos,opts)
[info,dopt] = gsosopt(...) Solve quasi-convex problem. sol = S(...)
info.tbnds(2) Retrieve upper bound on optimal value. sol.f
subs(s,dopt) Retrieve optimal solution (variable). sol.x
subs(p,dopt) Retrieve optimal solution (expression). sol.g

Quick links

Cite us

If you use CaΣoS, please cite us.

CaΣoS logo

Clone this wiki locally