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\leq q\}\).
proj_l2 Projection onto the scaled 2-norm ball \(\{x\,|\,\|x\|_2\leq q\}\).
proj_linf Projection onto the scaled \(\infty\)-norm ball \(\{x\,|\,\|x\|_\infty\leq q\}\).
proj_linfl2 Projection of each row of a matrix onto the scaled \(2\)-norm ball \(\{x\,|\,\|x\|_2\leq q\}\).
proj_max Projection onto the scaled set of vectors \(\{x\,|\,\max_i x_i\leq q\}\).
proj_nuclear Projection onto the set of matrices with bounded nuclear norm: \(\{X\,|\,\sum_i \sigma_i(X) \leq q\}\)
proj_psd Projection onto the positive semidefinite (PSD) cone: \(\{X\,|\,X=X^T,\,\lambda_{\text{min}}(X)\geq 0\}\)
proj_psdUTrace Projection onto the PSD cone with fixed trace: \(\{X\,|\,X=X^T,\,\lambda_{\text{min}}(X)\geq 0,\,\mathop{\textrm{Tr}}(X)=q\}\)
proj_Rn “Projection” onto the entire space.
proj_Rplus Projection onto the nonnegative orthant \(\{x\,|\,\min_i x_i\geq 0\}\).
proj_simplex Projection onto the simplex \(\{x\,|\,\min_i x_i\geq 0\,\sum_i x_i=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\,|\,\sigma_{\text{max}}(X) \leq q\}\)
proj_maxEig Projection onto the set of symmetric matrices with bounded maximum eigenvalue:
\(\{X\,|\,X=X^T,\,\lambda_{\text{max}}(X)\leq 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 \(\ell_1\) norm.
prox_Sl1 Sorted/ordered \(\ell_1\) norm; see the ordered l1 page for info.
prox_l1l2 \(\ell_1\)-\(\ell_2\) block norm: the sum of the \(\ell_2\) norms of rows.
prox_l1linf \(\ell_1\)-\(\ell_\infty\) block norm: the max of the \(\ell_2\) norms of rows.
prox_l1pos \(\ell_1\) norm, restricted to \(x \geq 0\).
prox_l2 \(\ell_2\) norm.
prox_linf \(\ell_\infty\) 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 \(-\sum_i x_i\log x_i\)
smooth_handles Smooth function from separate \(f\) / \(g\) handles.
smooth_huber Huber function generation.
smooth_linear Linear function generation.
smooth_logdet The \(-\log\det(X)\) function.
smooth_logLLogistic Log-likelihood function of a logistic: \(\sum_i y_i \mu_i – log( 1+\exp(\mu_i) )\)
smooth_logLPoisson Log-likelihood of a Poisson: \(\sum_i -\lambda_i + x_i \cdot \log( \lambda_i)\)
smooth_logsumexp The function \(\log(\sum_i \exp(x_i))\)
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.
\( \min_x .5\|Ax-b\|_2^2 + \lambda \|x\|_1 \) 
solver_LASSO Minimize residual subject to \(\ell_1\)-norm constraints.
\( \min_x .5\|Ax-b\|_2^2\) subject to \( \|x\|_1 \le \tau \)
solver_SLOPE Sorted L-One Penalized Estimation; like LASSO but with an ordered \(\ell_1\)-norm; see documentation.
solver_sBP Basis pursuit (l1-norm with equality constraints). Uses smoothing.
\( \min_x \|x\|_1 \) subject to \(Ax=b\)
solver_sBPDN Basis pursuit de-noising. BP with relaxed constraints. Uses smoothing.
\( \min_x \|x\|_1 \) subject to \(\|Ax-b\|_2 \le \epsilon\)
solver_sBPDN_W Weighted BPDN problem. Uses smoothing.
\( \min_x \|Wx\|_1 \) subject to \(\|Ax-b\|_2 \le \epsilon\)
solver_sBPDN_WW BPDN with two separate (weighted) \(\ell_1\)-norm terms. Uses smoothing.
\( \min_x \|W^{(1)}x\|_1+\|W^{(2)}x\|_1 \) subject to \(\|Ax-b\|_2 \le \epsilon\)
solver_sDantzig Dantzig selector problem. Uses smoothing.
\( \min_x \|x\|_1 \) subject to \(\|A^T(Ax-b)\|_\infty \le \delta\)
solver_sDantzig_W Weighted Dantzig selector problem. Uses smoothing.
\( \min_x \|Wx\|_1 \) subject to \(\|A^T(Ax-b)\|_\infty \le \delta\)
solver_sLP Generic linear programming in standard form. Uses smoothing.
\( \min_x c^Tx \) subject to \(x \ge 0\) and \( Ax=b\)
solver_sLP_box Generic linear programming with box constraints. Uses smoothing.
\( \min_x c^Tx \) subject to \(\ell \le x \le u\) and \( Ax=b\)
Premade solvers for specific problems (matrix variables)
Here, \(\mathcal{A}\) is a generic linear operator and \(\mathcal{A}_\Omega\) is the sub-sampling operator that samples entries in \(\Omega\).
The nuclear/trace norm is written \( \|\cdot\|_{\text{tr}} \)
solver_psdComp Matrix completion for PSD matrices.
\( \min_X .5\| \mathcal{A}_\Omega(X) – b\|_2^2 \) subject to \( X \succeq 0\)
solver_psdCompConstrainedTrace Matrix completion with constrained trace, for PSD matrices.
\( \min_X .5\| \mathcal{A}_\Omega(X) – b\|_2^2 \) subject to \( X \succeq 0\) and \( \textrm{trace}(X)=\tau)
solver_TraceLS Unconstrained form of trace-regularized least-squares problem.
\( \min_X .5\| \mathcal{A}(X) – b\|_2^2 + \lambda \textrm{trace}(X)\) subject to \( X \succeq 0\)
solver_sNuclearBP Nuclear norm basis pursuit problem (i.e. matrix completion). Uses smoothing.
\( \min_X \|X\|_{\text{tr}} \) subject to \( \mathcal{A}_\Omega(X) = b\)
solver_sNuclearBPDN Nuclear norm basis pursuit problem with relaxed constraints. Uses smoothing.
\( \min_X \|X\|_{\text{tr}} \) subject to \( \|\mathcal{A}_\Omega(X) – b\|_2 \le \epsilon\)
solver_sSDP Generic semi-definite programs (SDP). Uses smoothing.
\( \min_X \text{tr}(C^TX) \) subject to \(X \succeq 0\) and \( \mathcal{A}(X) = b\)
solver_sLMI Generic linear matrix inequality problems (LMI is the dual of a SDP). Uses smoothing.
\( \min_y b^Ty \) subject to \( A_0 + \sum_i A_i y_i \succeq 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).