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|x1q}.
proj_l2 Projection onto the scaled 2-norm ball {x|x2q}.
proj_linf Projection onto the scaled -norm ball {x|xq}.
proj_linfl2 Projection of each row of a matrix onto the scaled 2-norm ball {x|x2q}.
proj_max Projection onto the scaled set of vectors {x|maxixiq}.
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|minixi0}.
proj_simplex Projection onto the simplex {x|minixi0ixi=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 x0.
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μilog(1+exp(μi))
smooth_logLPoisson Log-likelihood of a Poisson: iλi+xilog(λ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.5Axb22+λx1 
solver_LASSO Minimize residual subject to 1-norm constraints.
minx.5Axb22 subject to x1τ
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.
minxx1 subject to Ax=b
solver_sBPDN Basis pursuit de-noising. BP with relaxed constraints. Uses smoothing.
minxx1 subject to Axb2ϵ
solver_sBPDN_W Weighted BPDN problem. Uses smoothing.
minxWx1 subject to Axb2ϵ
solver_sBPDN_WW BPDN with two separate (weighted) 1-norm terms. Uses smoothing.
minxW(1)x1+W(2)x1 subject to Axb2ϵ
solver_sDantzig Dantzig selector problem. Uses smoothing.
minxx1 subject to AT(Axb)δ
solver_sDantzig_W Weighted Dantzig selector problem. Uses smoothing.
minxWx1 subject to AT(Axb)δ
solver_sLP Generic linear programming in standard form. Uses smoothing.
minxcTx subject to x0 and Ax=b
solver_sLP_box Generic linear programming with box constraints. Uses smoothing.
minxcTx subject to xu 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.5AΩ(X)b22 subject to X0
solver_psdCompConstrainedTrace Matrix completion with constrained trace, for PSD matrices.
minX.5AΩ(X)b22 subject to X0 and \( \textrm{trace}(X)=\tau)
solver_TraceLS Unconstrained form of trace-regularized least-squares problem.
minX.5A(X)b22+λtrace(X) subject to X0
solver_sNuclearBP Nuclear norm basis pursuit problem (i.e. matrix completion). Uses smoothing.
minXXtr subject to AΩ(X)=b
solver_sNuclearBPDN Nuclear norm basis pursuit problem with relaxed constraints. Uses smoothing.
minXXtr subject to AΩ(X)b2ϵ
solver_sSDP Generic semi-definite programs (SDP). Uses smoothing.
minXtr(CTX) subject to X0 and A(X)=b
solver_sLMI Generic linear matrix inequality problems (LMI is the dual of a SDP). Uses smoothing.
minybTy subject to A0+iAiyi0
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).