SNOPT Changelog

Sun May 11 18:35:33 EDT 1997

Tweak things to reflect changes to SNOPT since 19970318.

Fri Jul 11 02:06:00 EDT 1997

Trivial tweak to snopt.c; bring xsum0.out up to date (it was wrong).

Fri Oct 17 01:17:15 EDT 1997

Report numbers of nonlinear objective and constraint evaluations (when positive), and the numbers of gradient (and Jacobian) evaluations. Give default 99999999 to the iteration limit “iterations”. This stuff still pertains to SNOPT 5.1.2; a driver for 5.3 is coming.

Thu Oct 23 21:07:31 EDT 1997

Update to version 5.3.

Fri Oct 24 11:34:08 EDT 1997

Fix glitch with “snopt -v”, which erroneously mentioned “March 1997”.

Thu Oct 30 11:52:40 EST 1997

Make outlev > 1 work as described by “snopt -?”.

Thu Nov 6 09:01:26 EST 1997

snopt.c: tweak for -DKR_headers; snoptver.c0 not changed.

Fri Nov 7 12:45:25 EST 1997

snopt.c: fix typo in snopt -=; invoke xknowne (added last night to amplsolver.a) rather than xknown.

Wed Nov 12 17:01:39 EST 1997

README makefile: tweak to reflect libamplsnopt.a that can now be created by the makefile in Philip Gill’s snopt.tar.gz.

Fri Nov 14 07:47:44 EST 1997

snopt.c snoptver.c0: correct calling seq. of funcon and funobj (the change should be invisible, as it involves arguments that are never referenced); change MINOS to SNOPT in the output of “snopt -?”.

Mon Nov 24 08:45:44 EST 1997

snopt.c snoptver.c0: supply problem name (based on stub), as it appears in output generated by outlev >= 2.

Tue Feb 3 13:28:01 EST 1998

snopt.c snoptver.c0: recognize return (not documented in the SNOPT source) for “Primal feasible solution; could not satisfy dual feasibility”.

Sun Apr 19 21:40:42 EDT 1998

makefile: omit $S/funcadd0.o; on most systems, $S/amplsolver.a now provides a recommended default funcadd: see ampl/solvers/funclink/README for details.

Tue May 26 23:11:20 EDT 1998

Update to SNOPT 5.3-2.

Fri Jun 5 15:04:15 EDT 1998

Adjust returned status values so nonbasic slacks for equality constraints will have .status value “equ”.

Tue Jul 28 22:36:04 EDT 1998

README: add table of possible solve_result_num values.

Wed Oct 14 00:31:19 EDT 1998

snopt.c: updated to fix a bug with problems having a nonlinear objective and some purely linear constraint variables that do not appear in the objective. Too much of the gradient was zeroed in this case, possibly corrupting memory. The fix involves an update of the AMPL/solver interface library (amplsolver.a or amplsolv.lib), which must be recompiled.

Thu Nov 19 16:07:42 EST 1998

snopt.c: correct an off-by-one bug in the numbers of objective and constraint evaluations reported in the solution message: the numbers were high by one. snoptver.c0: reflect version 5.3-4.

Mon Nov 23 15:18:58 EST 1998

snopt.c: change default superbasics_limit (which must be known too soon for the usual default computation by the SNOPT routines) to min(500, nnL+1), where nnL is the number of nonlinear variables. makefile: pout out CFLAGS comments in $S/makefile.

Tue Nov 24 17:21:22 EST 1998

snopt.c: call snMem() rather than s8Mem() to get memory estimates. This changes should be invisible, but makes the code a bit simpler and more readable.

Sat Feb 26 15:25:26 EST 2000

snopt.c: remove assignment “Plinfy = Infinity” to keep SNOPT’s scaling routine from generating NaNs (under rare conditions).

Mon Feb 28 13:22:45 EST 2000

snopt.c: recant yesterday’s change; something else was amiss in the example that led to the change.

Thu May 11 12:58:46 EDT 2000

snopt.c: zero memory passed to sninit_().

Wed May 23 13:38:49 EDT 2001

snopt.c: Adjust so outlev=n for n > 1 will report SNOPT’s function evaluation times by default (unless timing_=0 is specified). On some systems, these times are less accurate than those produced when ftimes=1 is specified. snopt.c: updated for version 6.1-1; the previous snopt.c (for version 5.3.5) is now snopt535.c. README updated. makefile renamed makefile.u; new and subdirectory src (with its own Unix and Microsoft makefile variants).

Wed Jun 20 16:52:59 EDT 2001

Minor tweaks… snopt.c: fix glitch on line 942 (change = to ==) and add #ifdef Finite_Plinfy for machines with buggy Infinity arithmetic. Add src/makefile.fu. Add student snopt binaries to subdirectories of /ampl/student.

Wed Apr 10 14:02:46 EDT 2002

snopt.c: upon SIGINT (which may be caused on some systems by typing control-C or Del), return with solve_result_num = 401 and give solve_message “SIGINT treated as iteration limit”.

Tue Apr 30 18:35:10 EDT 2002

  • snopt.c: show less version information by default: rather than, “SNOPT 6.1-1(4)(Jun 2001):”, print just “SNOPT 6.1-1:”. More detail is still available with the command-line invocation “snopt -v” or with “version=1” in $snopt_options.

Mon Oct 22 01:20:56 MDT 2007

Update to SNOPT version 7.2-5. Add simple configure and configurehere scripts.

Thu Nov 29 02:06:53 MST 2007

snopt.c, README: when the objective cannot be evaluated initially, report this (with new solve_result_num value 515) rather than that the constraints cannot be evaluated at the starting point. snopt_.c: update for SNOPT 7.*.

Sun Apr 6 22:26:59 MDT 2008

snopt.c: adjust get_Title to ensure Oinfo.version is null-terminated.

Wed Jun 1 13:17:17 MDT 2011

snopt.c: fix an (apparently so-far harmless) out-of-bounds array reference on QP problems.


  • snopt.c: new keyword objrep: Whether to replace

      minimize obj: v;


      minimize obj: f(x)
      when variable v appears linearly in exactly one constraint of the form
      s.t. c: v >= f(x);
      s.t. c: v == f(x);
      Possible objrep values:
      0 = no
      1 = yes for v >= f(x) (default)
      2 = yes for v == f(x)
      3 = yes in both cases
  • snopt.c and README: new solve_result_num value 530 for “Indefinite Hessian”, which is possible with the default qpcheck = 1 when the objective is quadratic and the constraints are linear.


  • snopt.c: correct last argument passed to sninit_. This change should be invisible.


  • snopt.c: omit unnecessary include “f2c.h”.


  • snopt.c: fix a possible fault with “objrep” on problems with nonlinear constraints and a linear objective; change objrep default to 3.


  • snopt.c: fix a bug that caused keyword meminc to be ignored, and arrange for “snopt stub meminc=? …” to show the default meminc value (which is 20*(M + N), where M = number of constraints and N = number of variables).


  • snopt.c: changes sntitl_ to sntitle_ (for SNOPT 7.5).


  • snopt.c: fix incorrect handling of “objno” keyword.


  • snopt.c: fix a glitch with a starting point where a derivative cannot be evaluated.
    Instead of saying, e.g.,

     SNOPT 7.5-1.2 : Bug: "scream" called.
     -11111 iterations


     SNOPT 7.5-1.2 : Derivative evaluation error.
     0 iterations, infeasibility sum 0
  • snopt.c, README.snopt: add some solve_result_num values for unlikely errors:

     517	Bad "nn=filename" assignment
     561	Bug: "scream" called
     562	Evaluation error
     563	Derivative evaluation error
     564	Bug: surprise setjmp() return
     565	Floating-point error


  • snopt.c: fix a bug with “objrep” with “var v; minimize c*v;” for c values other than 1, and relink to fix objrep bugs with several adjustable objectives.


  • Relinked with an updated ASL2, fixing a bug affecting Hessian computations.


  • Relinked with and updated ASL2, which fixes some minor problems.


  • Fixed a possible problem in the licencing routines for computer with many MAC addresses.


  • Relinked with ASL 20211109, which allows the use of functions with output arguments in the AMPL session.