Scilab Home Page | Wiki | Bug Tracker | Forge | Mailing List Archives | Scilab Online Help | File Exchange
ATOMS : Unconstrained Optimization details
Login with GitLab

Unconstrained Optimization

Provide 35 unconstrained optimization problems
(11195 downloads for this version - 20986 downloads for all versions)
Michael Baudin
Benoit Hamelin
Jean-Pierre Dussault
Chaya Gurwitz
Livia Klein
Madhu Lamba
John Burkardt
Jorge More
Burton Garbow
Kenneth Hillstrom
Owner Organization
Michael BAUDIN
Creation Date
September 7, 2015
Source created on
Scilab 6.0.x
Binaries available on
Scilab 6.0.x:
Windows 64-bit Windows 32-bit Linux 64-bit Linux 32-bit macOS
Install command
--> atomsInstall("uncprb")

The goal of this toolbox is to provide unconstrained optimization problems
in order to test optimization algorithms.

The More, Garbow and Hillstrom collection of test functions is widely used
in testing unconstrained optimization software.  The code for these problems
is available in Fortran from the netlib software archives.

The port from Fortran to Matlab was done by two undergraduate students at
Brooklyn College,
Livia Klein and Madhu Lamba, under the supervision of Chaya Gurwitz.

Benoit Hamelin did the port from Matlab to Scilab v4 with m2sci and
did some manual tuning of the result.

Michael Baudin did the port from Scilab v4 to Scilab v5.
I renamed the functions to avoid naming conflicts.
I formatted the help pages to generate automatically the xml from the

 * Provides 35 unconstrained optimization problems.
 * Provides the function value, the gradient, the function vector, the
 * Provides the Hessian matrix for 18 problems.
 * Provides the starting point for each problem.
 * Provides the optimum function value and the optimum point x for many
 * Provides finite difference routines for the gradient, the Jacobian and the
Hessian matrix.
 * Macro based functions : no compiler required.
 * All function values, gradients, Jacobians and Hessians are tested.


 * uncprb_overview — An overview of the Unconstrained Optimization Problems
 * uncprb_getclass — Returns the name.
 * uncprb_getfunc — Returns the function vector, the Jacobian and, if
available, the Hessian.
 * uncprb_getgrdfcn — Returns the gradient.
 * uncprb_getgrdfd — Compute the gradient by finite differences.
 * uncprb_gethesfcn — Returns the function value.
 * uncprb_gethesfd — Compute the Hessian by finite differences.
 * uncprb_getinitf — Returns the starting point.
 * uncprb_getinitpt — Returns the starting point.
 * uncprb_getname — Returns the name.
 * uncprb_getobjfcn — Returns the function value.
 * uncprb_getopt — Returns the name.
 * uncprb_getproblems — Lists the problems.
 * uncprb_getvecfcn — Returns the function vector and the Jacobian.
 * uncprb_getvecjac — Returns the Jacobian.
 * uncprb_getvecjacfd — Compute the Jacobian by finite differences
 * Benchmark
   * uncprb_computestatus — Computes the status of an optimization.
   * uncprb_leastsqfun — Returns the residual vector for the leastsq
   * uncprb_leastsqget — Get the fields of the internal data for
   * uncprb_leastsqinit — Initialize the internal data for uncprb_leastsqfun
   * uncprb_leastsqjac — Returns the Jacobian matrix for the leastsq
   * uncprb_lsqrsolvefun — Returns the residual vector for the lsqrsolve
   * uncprb_lsqrsolveget — Get the fields of the internal data for
   * uncprb_lsqrsolveinit — Initialize the internal data for uncprb_lsqrsolve
   * uncprb_lsqrsolvejac — Returns the Jacobian matrix for the lsqrsolve
   * uncprb_optimfun — Returns f and g for the optim function.
   * uncprb_optimget — Get the fields of the internal data for
   * uncprb_optiminit — Initialize the internal data for uncprb_optimfun
   * uncprb_printsummary — rtolF, atolF, rtolX, atolX, fmt)


 * checkAlgo566_UNC : compare the output of uncprb against Algo 566 on UNC
 * checkAlgo566_NLEQ : compare the output of uncprb against Algo 566 on NLEQ
 * bench_problems : Compare performances of the functions of the test problems
 * bench_optim : Test the optim function on this benchmark.
 * bench_lsqrsolve : Test the lsqrsolve function on this benchmark.
 * bench_leastsq : Test the leastsq function on this benchmark.
 * bench_ntrust : Test the ntrust function (from optkelley) on this benchmark.
 * bench_fminsearch : Test the fminsearch function on this benchmark.
 * bench_bfgswopt : Test the bfgswopt function (from optkelley) on this


"Algorithm 566: FORTRAN Subroutines for Testing Unconstrained Optimization
Software", ACM Transactions on Mathematical Software (TOMS), Volume 7 ,  Issue
1, March 1981, Pages: 136 - 140, J. J. Moré, Burton S. Garbow, Kenneth E.

"HESFCN - A Fortran Package Of Hessian Subroutines For Testing Nonlinear
Software", Victoria Averbukh, Samuel Figueroa, And Tamar Schlick Courant
Institue Of Mathematical Sciences


Scilab v5 port and update: 2010, Michael Baudin
Scilab port: 2000-2004, Benoit Hamelin, Jean-Pierre Dussault
Matlab port: Chaya Gurwitz, Livia Klein, and Madhu Lamba
2000 - John Burkardt (optimum points for problem #20)
Fortran 77: Jorge More, Burton Garbow and Kenneth Hillstrom

Files (2)
[192.82 kB]
Source code archive

[461.38 kB]
OS-independent binary for Scilab 6.0.x
Binary version
Automatically generated by the ATOMS compilation chain

News (0)
Comments (0)
Leave a comment
You must register and log in before leaving a comment.
Login with GitLab
Email notifications
Send me email when this toolbox has changes, new files or a new release.
You must register and log in before setting up notifications.