Function list
Main TFOCS programs | |
tfocs | Minimize a convex problem using a first-order algorithm. |
tfocs_SCD | Smoothed conic dual form of TFOCS, for problems with non-trivial linear operators. |
continuation | Meta-wrapper to run TFOCS_SCD in continuation mode. |
Miscellaneous functions | |
tfocs_version | Version information. |
tfocs_where | Returns the location of the TFOCS system. |
Operator calculus | |
linop_adjoint | Computes the adjoint operator of a TFOCS linear operator |
linop_compose | Composes two TFOCS linear operators |
linop_scale | Scaling linear operator. |
prox_dualize | Define a proximity function by its dual |
prox_scale | Scaling a proximity/projection function. |
tfunc_scale | Scaling a function. |
tfunc_sum | Sum of functions. |
tfocs_normsq | Squared norm. |
linop_normest | Estimates the operator norm. |
Linear operators | |
linop_matrix | Linear operator, assembled from a matrix. |
linop_dot | Linear operator formed from a dot product. |
linop_fft | Fast Fourier transform linear operator. |
linop_TV | 2D Total-Variation (TV) linear operator. |
linop_TV3D | 3D Total-Variation (TV) linear operator. |
linop_handles | Linear operator from user-supplied function handles. |
linop_spot | Linear operator, assembled from a SPOT operator. |
linop_reshape | Linear operator to perform reshaping of matrices. |
linop_subsample | Subsampling linear operator. |
linop_vec | Matrix to vector reshape operator |
Projection operators (proximity operators for indicator functions) | |
proj_0 | Projection onto the set {0} (for equality constraints) |
proj_box | Projection onto box constraints. |
proj_l1 | Projection onto the scaled 1-norm ball {x|‖x‖1≤q}. |
proj_l2 | Projection onto the scaled 2-norm ball {x|‖x‖2≤q}. |
proj_linf | Projection onto the scaled ∞-norm ball {x|‖x‖∞≤q}. |
proj_linfl2 | Projection of each row of a matrix onto the scaled 2-norm ball {x|‖x‖2≤q}. |
proj_max | Projection onto the scaled set of vectors {x|maxixi≤q}. |
proj_nuclear | Projection onto the set of matrices with bounded nuclear norm: {X|∑iσi(X)≤q} |
proj_psd | Projection onto the positive semidefinite (PSD) cone: {X|X=XT,λmin(X)≥0} |
proj_psdUTrace | Projection onto the PSD cone with fixed trace: {X|X=XT,λmin(X)≥0,Tr(X)=q} |
proj_Rn | “Projection” onto the entire space. |
proj_Rplus | Projection onto the nonnegative orthant {x|minixi≥0}. |
proj_simplex | Projection onto the simplex {x|minixi≥0∑ixi=1}. |
proj_conic | Projection onto the second-order (aka Lorentz) cone. |
proj_singleAffine | Projection onto a single affine equality or in-equality constraint. |
proj_boxAffine | Projection onto a single affine equality along with box constraints. |
proj_affine | Projection onto general affine equations, e.g., solutions of linear equations. |
proj_l2group | Projection of each group of coordinates onto 2-norm balls. |
proj_spectral | Projection onto the set of matrices with bounded spectral norm: {X|σmax(X)≤q} |
proj_maxEig | Projection onto the set of symmetric matrices with bounded maximum eigenvalue: {X|X=XT,λmax(X)≤q}. |
Proximity operators of general convex functions | |
prox_0 | The zero proximity function: |
prox_boxDual | Dual function of box indicator function { l <= x <= u } |
prox_hinge | Hinge-loss function. |
prox_hingeDual | Dual function of the Hinge-loss function. |
prox_l1 | ℓ1 norm. |
prox_Sl1 | Sorted/ordered ℓ1 norm; see the ordered l1 page for info. |
prox_l1l2 | ℓ1-ℓ2 block norm: the sum of the ℓ2 norms of rows. |
prox_l1linf | ℓ1-ℓ∞ block norm: the max of the ℓ2 norms of rows. |
prox_l1pos | ℓ1 norm, restricted to x≥0. |
prox_l2 | ℓ2 norm. |
prox_linf | ℓ∞ norm. |
prox_max | Maximum function. |
prox_nuclear | Nuclear norm. |
prox_spectral | Spectral norm, i.e. max singular value. |
prox_maxEig | Maximum eigenvalue of a symmetric matrix. |
prox_trace | Nuclear norm, for positive semidefinite matrices. Equivalent to trace. |
Smooth functions | |
smooth_constant | Constant function generation. |
smooth_entropy | The entropy function −∑ixilogxi |
smooth_handles | Smooth function from separate f / g handles. |
smooth_huber | Huber function generation. |
smooth_linear | Linear function generation. |
smooth_logdet | The −logdet(X) function. |
smooth_logLLogistic | Log-likelihood function of a logistic: ∑iyiμi–log(1+exp(μi)) |
smooth_logLPoisson | Log-likelihood of a Poisson: ∑i−λi+xi⋅log(λi) |
smooth_logsumexp | The function log(∑iexp(xi)) |
smooth_quad | Quadratic function generation. |
Testing functions | |
test_nonsmooth | Runs diagnostic tests to ensure a non-smooth function conforms to TFOCS conventions |
test_proxPair | Runs diagnostics on a pair of functions to check if they are Legendre conjugates. |
test_smooth | Runs diagnostic checks on a TFOCS smooth function object. |
linop_test | Performs an adjoint test on a linear operator. |
Premade solvers for specific problems (vector variables) | |
solver_L1RLS | l1-regularized least squares problem, sometimes called the LASSO. minx.5‖Ax−b‖22+λ‖x‖1 |
solver_LASSO | Minimize residual subject to ℓ1-norm constraints. minx.5‖Ax−b‖22 subject to ‖x‖1≤τ |
solver_SLOPE | Sorted L-One Penalized Estimation; like LASSO but with an ordered ℓ1-norm; see documentation. |
solver_sBP | Basis pursuit (l1-norm with equality constraints). Uses smoothing. minx‖x‖1 subject to Ax=b |
solver_sBPDN | Basis pursuit de-noising. BP with relaxed constraints. Uses smoothing. minx‖x‖1 subject to ‖Ax−b‖2≤ϵ |
solver_sBPDN_W | Weighted BPDN problem. Uses smoothing. minx‖Wx‖1 subject to ‖Ax−b‖2≤ϵ |
solver_sBPDN_WW | BPDN with two separate (weighted) ℓ1-norm terms. Uses smoothing. minx‖W(1)x‖1+‖W(2)x‖1 subject to ‖Ax−b‖2≤ϵ |
solver_sDantzig | Dantzig selector problem. Uses smoothing. minx‖x‖1 subject to ‖AT(Ax−b)‖∞≤δ |
solver_sDantzig_W | Weighted Dantzig selector problem. Uses smoothing. minx‖Wx‖1 subject to ‖AT(Ax−b)‖∞≤δ |
solver_sLP | Generic linear programming in standard form. Uses smoothing. minxcTx subject to x≥0 and Ax=b |
solver_sLP_box | Generic linear programming with box constraints. Uses smoothing. minxcTx subject to ℓ≤x≤u and Ax=b |
Premade solvers for specific problems (matrix variables) | |
Here, A is a generic linear operator and AΩ is the sub-sampling operator that samples entries in Ω. The nuclear/trace norm is written ‖⋅‖tr |
|
solver_psdComp | Matrix completion for PSD matrices. minX.5‖AΩ(X)–b‖22 subject to X⪰0 |
solver_psdCompConstrainedTrace | Matrix completion with constrained trace, for PSD matrices. minX.5‖AΩ(X)–b‖22 subject to X⪰0 and \( \textrm{trace}(X)=\tau) |
solver_TraceLS | Unconstrained form of trace-regularized least-squares problem. minX.5‖A(X)–b‖22+λtrace(X) subject to X⪰0 |
solver_sNuclearBP | Nuclear norm basis pursuit problem (i.e. matrix completion). Uses smoothing. minX‖X‖tr subject to AΩ(X)=b |
solver_sNuclearBPDN | Nuclear norm basis pursuit problem with relaxed constraints. Uses smoothing. minX‖X‖tr subject to ‖AΩ(X)–b‖2≤ϵ |
solver_sSDP | Generic semi-definite programs (SDP). Uses smoothing. minXtr(CTX) subject to X⪰0 and A(X)=b |
solver_sLMI | Generic linear matrix inequality problems (LMI is the dual of a SDP). Uses smoothing. minybTy subject to A0+∑iAiyi⪰0 |
Algorithm variants | |
tfocs_AT | Auslender and Teboulle’s accelerated method. Reference: Auslender, A., Teboulle, M.: Interior gradient and proximal methods for convex and conic optimization. SIAM J. Optim. 16(3), 697–725 (2006) |
tfocs_GRA | Gradient descent. |
tfocs_LLM | Lan, Lu and Monteiro’s accelerated method. Reference: Lan, G., Lu, Z., Monteiro, R.D.C.: Primal-dual first-order methods with O(1/eps) iteration-complexity for cone programming. Math. Program. Ser. A (2009) |
tfocs_N07 | Nesterov’s 2007 accelerated method. References: Nesterov, Y.: Introductory Lectures on Convex Optimization: A Basic Course. Applied Optimization, vol. 87. Kluwer, Boston (2004); Nesterov,Y.: Gradient methods for minimizing composite objective function. Technical report (later published in Math. Prog. Series B), CORE 2007/76, Université Catholique de Louvain, Louvain-la-Neuve, Belgium (2007) |
tfocs_N83 | Nesterov’s 1983 accelerated method; also by Beck and Teboulle 2005 (FISTA). References: Nesterov, Y.: A method for unconstrained convex minimization problem with the rate of convergence O(1/k2). Doklady AN USSR; Nesterov, Y.: Smooth minimization of non-smooth functions. Math. Program. Ser. A 103, 127– 152 (2005); Beck, A., Teboulle, M.:A fast iterative shrinkage-thresholding algorithm for linear inverse problems. SIAM J. Imaging Sci. 2(1), 183–202 (2009) |
tfocs_TS | Tseng’s modification of Nesterov’s 2007 method. Reference: Tseng, P.: On accelerated proximal gradient methods for convex-concave optimization. (2008). |