NEWS for 'optim' Package

Return to the 'optim' package

optim 1.6.2
-----------

 ** `nonlin_min', `nonlin_residmin', `nonlin_curvefit',
    `residmin_stat', `curvefit_stat': Newer Octave versions throw an
    error if a user function which doesn't use 'varargin' is called
    with more arguments than it explicitly accepts. For this reason,
    some optional arguments to user functions are now only given if
    the user function accepts them. This applies to the 2nd
    (informational) argument of model/objective functions and
    gradient/Jacobian functions and to the 2nd (index) and 3rd
    (informational) argument of functions for general constraints and
    their gradients.

 ** Removed deprecated function `nmsmax' -- the same code is in
    `fminsearch' in core Octave, with a slightly different interface.

 ** Deprecated frontend function `fmins'.

 ** Renamed `expfit' to `pronyfit'. Calling it with `expfit(...)'
    still works, but is deprecated.

 ** Various bug fixes and build fixes for current development version
    8.0 of Octave.

optim 1.6.1
-----------

 ** Bug fixes: `__qp__' invocation in `quadprog' (and so `lsqlin'),
    handling of combined linear and non-linear constraints, handling
    'fixed' parameters in `residmin_stat'.

 ** `fmincon': Handle bound vectors which are too short as in Matlab.

optim 1.6.0
-----------

 ** Build fixes for Octave 5.1 and some bug fixes.

 ** With Octave from version 5.1 on, a parallel cluster established
    with package `parallel' can be used for computation of gradients
    with option `parallel_net'.

 ** Compatibility frontend `fmincon' has been added.

 ** `lsqnonlin' and `lsqcurvefit' now accept a problem structure as
    single argument for compatibility.

 ** `LinearRegression':

    Corrected errors in computing variances of data and parameters.

    Erroneous documentation of the 2nd output (`e_var', variances of
    data) has been fixed.

    The 5th output (previously `y_var'), which was erroneously
    documented as the variances of dependent variables, has been
    replaced by `fit_var', the variances of computed function values.

 ** Removed deprecated function `samin'. The functionality is
    available with the `samin' backend of function `nonlin_min'.

optim 1.5.3:
------------

 ** Added dependency on statistics package.

 ** Some bug fixes and build fixes for Octave 4.4.

 ** Unit test for nlinfit is now reproducible.

 ** Added unit tests in nonlin_residmin and nonlin_curvefit.

 ** Default algorithm of `nonlin_min' is now more robust.

 ** Standalone function `samin' is deprecated. The functionality has
    been moved into a `samin' backend of function `nonlin_min'.

optim 1.5.2:
------------

 ** Some build fixes. Builds with Octave 4.2.

 ** Links to core Octave documentation work now in html version of
    package documentation.

optim 1.5.1:
------------

 ** Fixed treatment of one-parameter-functions in `jacobs'.

 ** The sign of `lambda' returned for equality constraints by
    `quadprog' has been changed for compatibility with Matlab.

 ** Deprecated `nmsmax' -- the same code is in `fminsearch' in core
    Octave, with a slightly different interface.
 
 ** Fixed portability issue in building documentation.

 ** Fixed bug which could break building oct-files.

optim 1.5.0:
------------

 ** Compatible with Octaves new exception-based error
    handling. Compatibility with old error handling up to Octave-4.0
    is retained.

 ** For parallel optimization, package `parallel' of at least version
    3.0.4 is now required. This version of `parallel' attempts to
    install its functions for local parallel computation even on
    systems where its functions for parallel computation in clusters
    cannot be installed; so `optim' should at least be able to perform
    local parallel optimization even in this case.

 ** A parallel cluster can be used for computation of
    gradients. Currently needs a patched version of Octave.

 ** New compatibility wrapper functions `lsqnonlin' and `lsqcurvefit',
    calling the more general functions `nonlin_residmin' and
    `nonlin_curvefit' iternally.

 ** New compatibility wrapper function `nlinfit', calling
    `nonlin_curvefit' and `curvefit_stat' internally. New functions
    `statset' and `statget' for compatibility in handling options of
    `nlinfit'.

 ** New common frontend option 'TypicalX'. Additional common frontend
    options 'FinDiffRelStep' and 'FinDiffType', to match usual option
    names. 'diffp' and 'diff_onesided' are still available and can now
    also be specified as scalars.

 ** nonlin_residmin and nonlin_curvefit return determined Lagrange
    multipliers of any constaints

 ** New interface function `quadprog', similar to Octaves `qp'.

 ** New function `lsqlin'.

 ** Removed deprecated functions `minimize', `d2_min', and
    `fmin'. Removed obsolete documentation `optim-mini-howto-2'.

optim 1.4.1:
------------

 ** Made compatible with Octave 4.0.

 ** Fixed bug #43699.

optim 1.4.0:
------------

 ** There is now general package documentation in info format. To
    display it, type `optim_doc ()' or `optim_doc (keyword)'.

 ** Core Octaves `sqp' can now be used by the `nonlin_min' frontend.

 ** New backend `d2_min' for `nonlin_min' frontend, the standalone
    function `d2_min' is deprecated instead.

 ** Introduced option `user_interaction' into frontends, `nonlin_min',
    `nonlin_residmin', and `nonlin_curvefit'.

 ** Package `optim' does not depend on package `miscellaneous'
    anymore.

 ** The frontend `minimize' has been deprecated. An alternative
    frontend is `nonlin_min', released previously. The backends
    `nelder_mead_min' and `bfgsmin' of `minimize' can also be called
    directly, the backend `d2_min' is also deprecated and its
    algorithm is now available as a backend to
    `nonlin_min'. `poly_2_ex' is scheduled for removal from optim
    since it is not related to optimization.

optim 1.3.1:
------------

 ** Fixed parameter fixing issue in residmin_stat/curvefit_stat.

 ** Simulated annealing backend of nonlin_min can save and recover
    state, for interrupting and continuing long optimizations.

 ** Having the parallel package loaded is now optional.

 ** Simulated annealing backend of nonlin_min can do some parallel
    computation.

optim 1.3.0:
------------

 ** LinearRegression: Two demo codes added ad the confidence band 
                      for the dependent variable can be estimated.

 ** Bugfix in jacobs for functions of more than 2 variables.

 ** Parallel computation of gradients supported by nonlin_residmin,
    nonlin_curvefit, and nonlin_min for default and for complex step
    gradient methods. Introduces dependency on parallel package.

 ** In nonlin_residmin, nonlin_curvefit, nonlin_min, residmin_stat,
    and curvefit_stat, the following names of optimset options had
    to be changed to be consistent with interpretation of abbreviated
    option names:

      dfdp_pstruct            -> df_pstruct,
      inequc_f_idx            -> f_inequc_idx,
      inequc_df_idx           -> df_inequc_idxn,
      equc_f_idx              -> f_equc_idx,
      equc_df_idx             -> df_equc_idx,
      objf_grad_pstruct       -> grad_objf_pstruct,
      objf_hessian_pstruct    -> hessian_objf_pstruct,
      objf                    -> objf_type,
      complex_step_derivative -> complex_step_derivative_f.

 ** The function fminsearch was removed from the optim package, since
    it is available in Octave 3.8.0.

 ** The depricated functions optimset_compat and fminunc_compat are
    now removed.

optim 1.2.2:
------------

 ** Bugfixes in nonlin_min and nonlin_residmin/nonlin_curvefit in
    termination criteria, argument checking, and documentaion.

 ** Bugfix in private/__lm_feasible__.m: Wrong parantheses in checking
    of equality constraints for initial parameters (reported by Marcus
    Schmidt).

optim 1.2.1:
------------

 ** Bugfix in leasqr.m: errors when a function 'options' is in
    namespace.

Summary of important user-visible changes for optim 1.2.0:
-------------------------------------------------------------------

 ** Together with the new backend "lm_feasible" there is now a
    complete suite of backends for optimization with linear and
    general equality and inequality constraints, for scalar valued
    objective functions and for array valued model function, which
    features, a.o., honouring of constraints throughout optimization
    and handling of structure-based parameters. The respective user
    functions (frontends) are

      nonlin_min nonlin_residmin nonlin_curvefit

    together with a user function for statistics

      residmin_stat

 ** The requirement of nonlin_min, nonlin_residmin, and
    nonlin_curvefit for the general constraint functions being able to
    honour an index of constraints has been removed, the respective
    feature is still available by setting some options.

 ** Makefile fixed to work with non-standard linker options e.g on
    Apple.


Summary of important user-visible changes for optim 1.1.0:
-------------------------------------------------------------------

 ** The following functions are new optim 1.1.0:

      powell cauchy nonlin_min

 ** The following functions have been deprecated since they have been
    implemented in Octave core:

      fminunc_compat  optimset_compat

 ** The function `fmin' has been deprecated in favour of using `fminbnd'
    directly. If one really wishes to use the short version, one can
    easily create an alias on an octaverc file (see `doc startup') with
    the following code

      function out=fmin(varargin) out=fminbnd(varargin{:}); endfunction

 ** The package Makefile has been adapted for compatibility with Octave 3.6.0.

 ** Bugfixes on the functions:

      deriv   linprog

 ** The function `line_min' has a configurable setpesize and max evals.

 ** Added possibility to restrict a parameter to samin.

 ** Package is no longer automatically loaded.


Some important changes of the last versions of optim before 1.1.0:
------------------------------------------------------------------

 ** New functions:

      jacobs: complex step derivative approximation

      nonlin_residmin, nonlin_curvefit: Frontends with a general
      interface for constrained residual-based optimization. They
      allow a.o. optimization of structure-based named parameters or
      parameter-arrays. A backend is included, which is derived from
      the algorithm of leasqr, but enables feasible-path optimization
      with linear and general constraints.

Package: optim