Skip to content
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Go to file
Cannot retrieve contributors at this time
-- Note --
As of the move to github on Oct 2013, we will not mention
minor changes in this changelog since minor changes
can be viewed automatically using github's versioning tools
Oct 29 2013, v1.3 release 2
Renaming solver_OrderedLASSO.m to solver_SLOPE.m
Renaming prox_Ol1.m to prox_Sl1.m
Renaming examples/smallscale/test_OrderedLASSO.m to ...test_SLOPE.m
Oct 10 2013, v1.3
License changed! See LICENSE for details
proj_linfl2 Projects rows onto l2 norm constraints
proj_affine.m Projects onto generic affine constraints
proj_singleAffine.m Projects onto single affine constraint
proj_boxAffine.m In response to
projects onto intersection of box constraint and affine constraints
proj_conic.m Projects onto the second-order (aka Lorentz) cone
Contributed by Joseph Salmon
proj_l2group.m Projections onto a partitioned l2 group constraint
Contributed by Joseph Salmon
linop_TV3D.m Total variation for 3D grids (linop_TV is for 2D);
contributed by Mahdi Hosseini (
test_LASSO.m Tests the L1RLS (L1 regularized Least-Squares)
problem, aka LASSO
@single/* Allow TFOCS objects to have data type single
May not work well with sparse matrices (which are not allowed
to be sparse data type). Thanks to Graham Coleman.
mexFiles/* New director with mex files
Some non-core functions require mex files, and basic
installation routines and the mex files themselves are in this
solver_OrderedLASSO.m Solves the ordered LASSO problem
test_OrderedLASSO.m Test script for solver_OrderedLASSO
prox_OL1.m Proximity operator for the ordered LASSO
"Statistical Estimation and Testing via the Ordered l1 Norm"
by M. Bogdan, E. van den Berg, W. Su, and E. J. Candès, 2013
mexFiles/proxAdaptiveL1Mex.c Mex file helper for the ordered LASSO
proj_maxEig.m Fixed bug with variable names
prox_l1linf.m Fixed bug with typo of repmat for some cases
prox_nuclear.m Removed dependence on ismatrix() for greater compatibility
@double/tfocs_dot.m Fixed bug for multi-dimensional arrays, and generally made
the code better. Thanks to Graham Coleman for finding the bug. @single/tfocs_dot.m
is similarly updated.
smooth_quad.m Added use_eig mode that makes an expensive
one-time calculation and all subsequent calculations are cheaper
tfocs_initialize.m Fixed bug in initialization code for rounding dimensions; added new
file private/round.m. This affected the demo for alternating completion.
Also allows data to be single data type instead of double (thanks to Graham Coleman)
proj_psdUTrace.m Allows optional constraints that matrix is real-valued. Nov 23 2012
Can now use eigs for large-scale computation. Feb 15 2013
Fixed bug in eigs, March 18 2013
proj_psd.m Modified to allow eigs() version. Feb 15 2013.
prox_trace.m Allows optional constraints that specify the matrix is real-valued. Dec 9 2012
Fixed bug with eigs parameters in largescale mode
linop_TV.m Implemented norms() function so it is now independent of CVX
Also, adjoint operation is much faster due to a data locality trick
proj_l2.m Fixed bad documentation in .m file.
Also, fixed a bug, so we now project onto the norm ball, not its boundary
Thanks to Graham Coleman, fixed a bug for multidimensional arrays
prox_l1l2.m Using bsxfun for speed improvement
tfocs_SCD.m lines 41-44 were commented out but shouldn't have been;
thanks to Mark Harfouche for noticing this on the forums
Modified for Octave compatibility:
Sept 7 2012, v1.2
proj_nuclear.m Projection onto nuclear norm ball.
proj_spectral.m Projection onto spectral norm ball.
prox_max.m Maximum. Dual of proj_simplex.m
proj_max.m Projection so max <= 1. Dual of prox_l1pos.m
prox_maxEig.m Maximum eigenvalue. Dual of proj_psdUTrace.m
proj_maxEig.m Projection so max eig <= 1. Dual of prox_trace.m
prox_dualize.m Computes the Legendre dual of a function.
examples/demos/ Directory with demos (featured on website) is
test_TraceLS.m Added. Shows how to run solver_TraceLS.m
test_psdCompletion.m Added. Shows how to run solver_psdComp.m and
Contents.m Added. Describes the relevant functions.
Modified private/tfocs_prox.m, prox_l1.m, and tfocs_SCD.m to allow
mu to be a vector. Need to modify other prox functions.
Modified test_proxPair.m to test with symmetric, psd, and sparse matrices.
Modified prox_spectral.m to take advantage of symmetric matrices
Modified linop_subsample.m to work in more situations
Modified proj_psd.m to use eigs() if requested, though this is usually not
Fixed bug in prox_hinge.m (for y = [] case ).
Fixed bug in private/tfocs_iterate.m for stopCrit = Inf case
Thanks to Masoud Ahookhosh for finding this.
Fixed bugs in solver_psdComp.m and solver_psdCompConstrainedTrace.m
Made proj_l1.m more numerically stable; thanks to Chris Kauffman for finding
and fixing this.
Made size_compat.m allow multiple singleton dimensions in ND arrays; thanks
to Graham Coleman for finding and fixing this.
Feb 29 2012, v1.1a
Minor bug fixes, thanks to Graham Coleman for finding them:
private/print_cell_size.m incorrectly displayed the size of inputs (only
applied in "debug" mode)
private/size_compat.m has been fixed to work with 3D (or ND) arrays
when the final array dimension is a singleton (e.g. 20 x 30 x 1)
Jan 25 2012, v1.1
User guide updated.
Changes to code:
linop_fft.m FFT and its transpose. Supports sub-sampling.
test_proxPair.m Tests whether f and fDual are really duals. Not yet
documented in user guide, but see the help text.
solver_sLP_box.m LP with equality and box constraints
test_sBPDN_nonnegative.m Tests BPDN using x >= 0 constraint.
image_denoising_withSPOT.m An example of image denoising
and using the SPOT toolbox. The helper file "plotNow.m" is
also new, and allows you to watch a movie in real-time of
the iterates. Also shows how to use reweighting.
prox_l1pos.m proximity operator for ||x||_1 restricted to x >= 0
test_SVM.m demo with support vector machines and hinge-loss
test_complicatedUsage.m demo with several matrix variables and
other complicated terms
test_all.m runs all small scale examples
linop_reshape.m reshapes input (an extension of linop_vec). Thanks
to Graham Coleman for contributing.
tfocs.m "debug" option added to main tfocs routine
Bug fixes:
solver_sSDP.m fixed bug, thanks to Brian Borchers.
prox_hingeDual.m fixed NaN bug
continuation.m fixed bug for case when there are multiple matrix
variables, and for 3D arrays (thanks to Graham Coleman).
prox_spectral.m fixed bugs
test_sTV_largescale.m fixed myAwgn() bug (thanks to Matthew Suttinger)
linop_stack.m fixed bug that occurs when domain is a set of
matrices rather than vectors; thanks to Graham Coleman for discovering.
all solvers: fixed a bug with variable "L" that arose whenever
there is a function called "L.m" in the path (for example, WaveLab has
such a function).
tfocs_LLM.m fixed bug that occurs when restart is used
tfos_initialize.m fixed bug for strong convexity case when Lexact not
prox_boxDual.m fixed bug with bounds were not scalars
proj_l2.m fixed bug for q ~= 1 case
proj_0.m fixed bug for non-constant offsetsl thanks to Graham
tfocs.m allows new "debug" flag that gives more verbose
information, useful when debugging
tfocs_inizialize.m gives more useful error message when sizes are
tfocs_iterate.m Improved performance for stopCrit = 3
tfocs_iterate.m Now supports 'printStopCrit' to display progress of
whatever value is used to determine the stopping criteria
linop_test.m Supports conjugate-symmetric complex inputs/outputs
test_sBPDN_withContinuation.m Updated
solver_sBP.m Supports non-negativity constraints
solver_sBPDN.m Supports non-negativity constraints
tfocs_AT.m Now includes cntr_reset field, which explicitly
recalculates some quantities every so often to avoid accumulation
of roundoff error.
proj_boxDual.m --> prox_boxDual.m to have more consistent naming.
proj_l2.m handles diagonal scaling term; this feature is
experimental and uses a 1D optimization routine. It should
be efficient for N <= 2^18 at least
prox_l2.m same experimental modification as in proj_l2.m
linop_scale.m allows user to specify size explicitly, if desired
prox_hinge.m and prox_hingeDual.m allow more general form with "y"
example_{LMI, LinearProgram, SDP} renamed to test_{LMI, LinearProgram,
March 20 2011, v1.0c
An almost comprehensive lists of changes since December 2010:
solver_TraceLS.m Solves trace-regularized least-squares problem
solver_sLP.m Linear Program solver
solver_sSDP.m Semi-Definite Program solver
solver_sLMI.m Linear Matrix Inequality solver
prox_hinge.m Proximity fcn for hinge-loss
prox_hingeDual.m Proximity fcn for dual of hinge-loss
proj_0.m Projection onto zero. Added for completeness
proj_boxDual.m Proximity fcn for dual of prox_box.m
smooth_huber.m Huber function
smooth_logLLogistic.m Log-likelihood of the logistic function
smooth_logLPoisson.m Log-likelihood of independent Poisson r.v.
The continuation feature is now builtin to tfocs_SCD.m
Updated and/or bug fixes:
linop_subsample.m -- can now handle matrix entry sampling
proj_l2.m -- bug fix
prox_l1.m -- allow scaling "q" to be a non-negative vector
proj_box.m -- bug fix
private/tfocs_initialize.m -- bug fixes
private/tfocs_iterate.m -- bug fixes
smallscale/examples: the .mat files have been moved to a separate
smooth_quad.m -- allows nonsmooth usage too now
solver_L1RS.m -- bug fix (typo); thanks to Ewout van den Berg
linop_test.m -- now compatible with multidemensional arrays
New demos:
smallscale/example_LinearProgram.m linear programming
smallscale/example_SDP.m semi-definite programming
smallscale/example_LMI.m linear matrix inequality
User guide:
Updated to mention the new routines
Describes scaling issues
Describes continuation
Added acknowledgements section
Thanks to Graham Coleman for bug-fixes related to multidimensional