- Release 1.5.1.
- Add
full_hist
option to enable saving inoutput.hist
trajectories ofx
,z
,g
,h
,lam
, andmu
(issue #4).
- Add Sphinx-based Reference documentation.
- Release 1.5.
- Add to
mplinsolve()
the ability to return a struct containing the matrix LU factorization, and to reuse this pre-factored matrix to solve additional systems with different right-hand-sides by passing the struct in place of the A matrix to subsequent calls. - Add option to
mplinsolve()
to solve transposed systems by settingopt.tr
to 1, including when providing the pre-factored matrix for the original, non-transposed system.
- Release 1.4.
- Add feature detection functions for LU and PARDISO, defining tags
'lu_vec'
,'pardiso_legacy'
,'pardiso_object'
and'pardiso'
forhave_feature()
. Requires MP-Test 7.1 or later. - Remove custom LU and PARDISO detection code from
mplinsolve
and test functions, and switch to usinghave_feature()
.
- In User's Manual, add missing
linsolver
option in Table 3-3. - In User's Manual, add Sections 4 Other Functions, 4.1 Linear System Solvers - mplinsolve, and move Section 3.3 Quadratic Programming Solver to 4.2.
- Silence inadvertent output from
mplinsolve()
when called withoutsolver
input argument. - Fix fatal errors when
mplinsolve()
is called withLU
solver and denseA
matrix.
- Remove additional
have_fcn()
dependencies inmips()
,t_mips_pardiso()
andt_qps_mips()
. - INCOMPATIBLE CHANGE: Calling
mips()
withopt.linsolver
set to'PARDISO'
now results in a fatal error if PARDISO is not installed, rather than warning and continuing with the default linear solver.
- Fix bug in initialization of
mu
that resulted in fatal error int_mips
for some versions of MATLAB (e.g. R2013b on Mac).
- Release 1.3.1.
- Add
CITATION
file. - Other miscellaneous documentation updates, e.g. MATPOWER website links updated to https://matpower.org.
- Release 1.3.
- Add support for PARDISO v6.x.
- Ignore warnings from Octave 4.4 about calling
lu
with less than 4 outputs and a sparse input.
- Fix typo preventing
pardiso.dparm
options from being set. - Fix incorrect use of PARDISO options in
t_mplinsolve()
.
- Move
mplinsolve
PARDISO options toopt.pardiso
in preparation for adding options for other solvers. - Add
mplinsolve
solver option'LU'
for explicit LU decomposition with back substitution, with options inopt.lu
for specifying the number of output arguments in call tolu
(opt.lu.nout
), whether to use permutation vectors or matrices (opt.lu.vec
) and pivot threshold options (opt.lu.thresh
). The following values for thesolver
argument act as shortcuts for specifying various combinations of options:'LU3'
,'LU3a'
,'LU4'
,'LU5'
,'LU3m'
,'LU3am'
,'LU4m'
,'LU5m'
. Seehelp mplinsolve
for details. Thanks to Jose Luis Marin.
- Add Travis-CI integration. Thanks to Richard Lincoln.
- Moved development to GitHub: https://github.com/MATPOWER/mips.
- Renamed from MATLAB Interior Point Solver to MATPOWER Interior Point Solver.
- Remove dependence of
t_mpsolve()
on presence ofhave_fcn()
to detect PARDISO installation.
- Released MATPOWER 6.0b2.
- Fixed issue where default value of
feastol
option was not being set correctly inmips()
when called directly (or viaqps_mips()
) withfeastol = 0
.
- Added support for using PARDISO as linear solver for
computing interior-point update steps in MIPS, via new
mplinsolver()
function andlinsolver
option.
- Switch to more permissive 3-clause BSD license from GPL 3.0.
- Additional user-settable options:
xi
,sigma
,z0
,alpha_min
,rho_min
,rho_max
,mu_threshold
andmax_stepsize
. - INCOMPATIBLE CHANGE: The name of the option to
mips()
to specify the maximum number of step-size reductions whenstep_control
is on was changed frommax_red
tosc.red_it
for consistency with other MATPOWER options.
- Fixed a bug in MIPS where a near-singular matrix could produce an extremely large Newton step, resulting in incorrectly satisfying the relative feasibility criterion for successful termination.
- Fixed fatal bug in MIPS for unconstrained, scalar problems. Thanks to Han Na Gwon.
- Released MATPOWER 4.1.
- no change
- no change
- Modified input args for Hessian evaluation function for MIPS.
Requires
cost_mult
as 3rd argument.
- Check for NaN's in update step.
- Changed licensing to GNU General Public license. See
LICENSE
andCOPYING
files for details.
- GNU Octave compatibility! (tested with Octave 3.2.3)
- Added optional input arg to
mipsver()
function to trigger return of entire version struct withName
,Version
,Release
andDate
(similar to MATLAB'sver()
function). - Massive help text update to more closely match MathWorks conventions; function names in ALL CAPS, See also ..., Examples, etc.
- Added
mipsver()
.
- Added a version number and printing of MIPS version lines to verbose output.
- Swapped
g
andh
(G
andH
) in notation to match convention used in previously published stuff.
- Added
qps_mips()
, with calling syntax similar toquadprog()
from the Optimization Toolbox. The main difference from thequadprog()
API is that the constraints are specified asl <= A*x <= u
, instead ofA*x <= b
andAeq*x == beq
.
- Renamed the pure-MATLAB interior point solver from PDIPM to MIPS (MATLAB Interior Point Solver).
- Changed order of input args to
pdipm()
, added option for single input struct (like fmincon), more documentation, all constraints are now optional, returnsexitflag = -1
fornumerically failed
, output includesmessage
field,lambda
only includes relevant fields. Added tests for pdipm as standalone solver.
- Added history field to the output with trajectories of obj, termination criterion, etc.
- Added acknowledgement of port from Hongye Wang's code.
- Removed unnecessary
return
statement at end of all M-files. If anything it should be anend
statement, but even that is optional, so we just let functions get terminated by the end-of-file or another function declaration.
- Break out of algorithm is any element of
x
becomes NaN.
- Added step-controlled PDIPM variant.
- Fixed some bugs in default args.
- Added a pure MATLAB implementation of the PDIPM (primal-dual interior point method) solver.