Sun May 16 12:21:33 EDT 1993 Add arg need_stub to getstub.c (==> changes to getstub.h, mng.c, nl2.c). Change %ld to %d in some format strings in lin1.c and lin2.c. New variant linrc.c of lin1.c that uses names from stub.row and stub.col file if available. Sun Jun 20 08:59:19 EDT 1993 Many minor changes, plus new sample input and output files. Postscript for "Hooking Your Solver to AMPL" is now available as "93-10 from research/nam". Wed Jun 30 23:46:08 EDT 1993 Postscript for "Hooking Your Solver to AMPL" (available as "93-10 from research/nam") updated to describe new ordering of nonlinear variables and counts in .nl files that describe nonlinear integer variables. Thu Sep 2 07:52:54 EDT 1993 nl2.c: fix bug in loop that checks for bounds on variables: < for(i = j = 0; i < N; i++) --- > for(i = j = 0; i < P; i++) Thu Nov 18 08:39:21 EST 1993 README: comments about ftp updated. Wed Feb 22 10:20:23 EST 1995 dualconv.c: add #ifdef KR_headers stuff for K&R C compilers. linrc.c: minor adjustment to permit compilation on non-Unix systems (such as MS-DOS). Mon Apr 21 22:45:29 EDT 1997 Update for revised amplsolver.a and "Hooking Your Solver to AMPL". Thu Aug 14 00:19:57 EDT 1997 Update MATLAB interface files amplfunc.c and spamfunc.c for MATLAB 5.x, renaming the old MATLAB 4.x versions amplfun4.c and spamfun4.c. Thu Mar 26 22:22:02 EST 1998 Trivial tweaks to ve08.c (we know that nerror >= 0). amplfunc.c, spamfunc.c: new optional 7th left-hand (return) argument to amplfunc('stub') and spamfunc('stub'): the cvar array: if positive, cvar(i) is the subscript of the variable (in 1..length(x)) that complements constraint i. evalg.m: minor correction: initialize j = 0. makefile: adjust to reflect funcadd1.c in the parent (solvers) directory. Fri Mar 27 15:49:25 EST 1998 Adjust makefiles to reflect addition of funcadd1.o to ../amplsolver.a. Wed Apr 15 14:33:56 EDT 1998 Adjust amplfunc.c, enewt.m, rvmsg.c, savesol.m, spamfunc.c, tnmain.c, and ve08.c to return solve_result to AMPL (by assigning solve_result_num); minor tweak to solve message format by solvers "v8" and "ve08". Tue Jul 14 15:52:34 EDT 1998 linrc.c: compute clen and rlen (which matters if constraint or variable names exceed 8 characters in length). Cosmetic change to amplfunc.c and spamfunc.c that eliminates a pointless warning message by some compilers. Wed Jul 29 09:32:15 EDT 1998 README: add table of possible solve_result_num values for mng, mnh, nl2. Fri Apr 9 00:46:03 EDT 1999 dualconv.c: set asl->i.n_var0 and asl->i.n_con0, which became necessary after changes for declared suffixes. Thu Apr 15 16:25:02 EDT 1999 makefile and various .out files: add 2>&1 to various test invocation lines. On Microsoft systems, amplsolv.lib merges stderr with stdout, and this change makes the output files agree. Fri Jun 25 18:32:51 EDT 1999 dualconv.c: pass arithmetic code and flags; adjust solve_result_num to interchange "infeasible" and "unbounded". linrc.c: formatting tweaks. makefile: omit dietlrc.out (old name for linrcdie.out). Wed Sep 15 14:33:15 EDT 1999 spamfunc.c: trivial tweak: omit two unused variables. Thu Oct 14 00:34:11 EDT 1999 New example nlcopy.c to illustrate new library routine fg_write(). Mon Jan 17 16:25:33 EST 2000 qtest.c: fix botch: 75c75 < nz = n_var + n_con; --- > nz = n_obj + n_con; Thu Feb 3 22:25:26 EST 2000 makefile.vc: adjusted reflecting changes to ../makefile.vc. Sat Aug 5 11:19:33 EDT 2000 nlcopy.c: omit an unused variable. ch3mnh.out, ch3mnh.sol: trivial update. evalg.m: change amplfunc(x, 2) to amplfunc(x, 1) to accord with documentation. (Both currently give the same result.) init.m: check for pname not assigned a character stub value. Wed Sep 6 10:28:50 EDT 2000 linrc.c, linrcdie.out: make values in the table of variable bounds and cost coefficients agree with the column headings by writing cost coefficients in column 2 rather than column 4. Tue Sep 12 15:44:34 EDT 2000 qtest.c: show lower and upper slack values for constraints. Today's changes to solvers/nqpcheck.c (subtraction of constant terms from constraint bounds rather than incorporating constant terms into constraint bodies) sometimes cause different values for constraint bodies, but not for the lower and upper slacks. ch3.nl: update to reflect changes to AMPL starting in version 20000128 that cause the first constraint of this example to be (which involves only linear defined variables) to be rendered as an explicitly linear constraint, and ordered as such. Sample output files updated accordingly. Mon Jan 22 11:33:05 EST 2001 amplfunc.c, spamfunc.c: adjust "Trouble evaluating..." error messages. makefile.u: "make test1" leave unexpected results in directory "bad1" and "make test2" leave them in directory "bad". Various *.out files: update to current output (under IRIX 6.5). Sat Mar 16 00:07:05 EST 2002 ve08.c: add ASL_find_default_no_groups to the flags in the pfg_read call when compiled with PSEDREAD #defined by v8.c. This was made necessary by a change to the .nl readers on 20010607: ve08.c is not prepared to deal with group partially separable structure. makefile.u: change the FC assignment to f77 (to cope with some shells for which "fc" has special magic meaning). Tue Aug 9 22:58:01 MDT 2005 New files README.gjh and gjh.c, and corresponding updates to makefile.u and makefile.vc. README.gjh describes "solver" gjh, whose source is gjh.c, which computes gradients, Jacobian matrices and Hessian matrices and makes their values available in an AMPL session (via an "include" command). Tue Dec 2 20:37:41 MST 2008 gjh.c: omit declaration of the unused w0 array. Add hist.c (a way to provide command-line history to interactive programs, such as ampl). Requires the GNU history and readline libraries. For use with ampl, invoke "hist ampl -vi2 ..." (where -vi2 causes prompts to appear). Wed May 13 21:30:40 MDT 2009 spamfunc.c: adjust to accord with a changed return type (mwIndex* rather than int*) from functions mxGetIr and mxGetJc) in recent versions of Matlab. (For older versions, use -DmwIndex=int when compiling spamfunc.c.) hist.c: add author name to comments. Sun Jul 12 23:08:18 MDT 2009 Adding source evalchk.c for "solver" evalchk that sets suffix .numerr on objectives and constraints to 0 if they can be evalated at the given starting point, to 1 if not, and to 2 if the entity but not its gradient can be evaluated. 20120216 amplfunc.c, spamfunc.c: when there is no objective (n_obj == 0), have [f,c] = amplfunc(x,0) and [f,c] = spamfunc(x,0) return f = 0, and similarly have [g,J] = amplfunc(x,1) and [g,J] = spamfunc(x,1) return a vector of zeros for g. makefile.u: omit mention of spamfun4.c. hist.c: behave better when the client program stops. 20131209 gjh.c: when "sparse" is specified, provide data for SH and HS even on linear problems, so "display H;", "display HS;" and "display SH;" will not give an error message when SH (the set of structurally nonzero Hessian elements) is empty. Fix a glitch in "gjh -?" output. 20140915 amplfunc.c, spamfunc.c: adjust order of includes for MS Windows. (Thanks to Victor Zverovich for reporting this issue.) 20141105 Add bspline.c (mentioned in a forthcoming paper). 20160215 gjh.c: when constraints are present but no dual values are supplied, so all Lagrange multipliers vanish, still provide the sparsity of the full Hessian of the Lagrangian (allowing for nonzero Lagrange multipliers). Thanks to Victor Zverovich for reporting this issue. Previously only the sparsity of the objective was returned. 20170711 Updates for solvers2.tgz. Minor changes to evalchk.c, makefile.u, makefile.vc, qtest.c, ve08.c. bspline.c: add some initial comments. nlcopy.c: add command-line option -b. hs100.nl: regenerate to reflect changed order of sections in .nl files introduced 20160519. 20170719 Tweak amplfunc.c and spamfunc.c to banish an inane warning. Add comments about Octave to makefile.u. Withdraw makefile.sy and makefile.wat. 20180314 Add command-line option '-i?' to et.c. 20201025 Add some possible error printing to et.c.