-
Notifications
You must be signed in to change notification settings - Fork 3
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 | 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 |
casos.PS.sym('c',z) |
sosdecvar('Q',z) |
Gram decision variable |
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 |
- Getting started
- Available conic solvers
- Convex and nonconvex sum-of-squares optimization
- Supported vector, matrix, and polynomial cones
- Some practical tipps for sum-of-squares
- Transitioning from other toolboxes
- Example code snippets
If you use CaΣoS, please cite us.