Thu Jul 8 00:03:32 EDT 1993 Tweak to example driver nl2nlc.c: 153c153 < C0 = (real *)Malloc(N*sizeof(real)); --- > C0 = (real *)Malloc(P*sizeof(real)); Fri Jul 9 02:52:17 EDT 1993 Adjust nlc.c (and ../edagread.c) to fix a bug in handling common expressions used only in a single constraint or objective. Thu Sep 2 11:09:45 EDT 1993 nlc.c: fix bug in handling OPCPOW (constant raised to a power) and in subscripts for purely linear variables when -d is not specified. Thu Nov 18 08:43:30 EST 1993 README: comments about ftp updated. Fri Feb 11 15:38:32 EST 1994 Omit test for zero when dividing by a constant. Tue Apr 5 16:45:38 EDT 1994 Add #ifdef KR_headers stuff (for K&R compilers: use -DKR_headers). Tue Apr 12 09:58:24 EDT 1994 New flag -i ==> do not differentiate w.r.t. integer variables. Sat Sep 10 22:28:03 EDT 1994 Update cops.c and *.hd to reflect changes in ampl/solvers/*. Tue Jan 16 11:54:25 EST 1996 Fix bug that could cause the dv array to be declared too small. Omit xcheck routine when it does nothing useful. Mon Apr 21 22:47:04 EDT 1997 Update for revised amplsolver.a and "Hooking Your Solver to AMPL". Thu Feb 3 23:04:44 EST 2000 makefile renamed makefile.u; makefile.vc adjusted reflecting changes to ../makefile.vc. Thu Apr 27 19:16:45 EDT 2000 Move opcode.hd to .. (ampl/solvers directory). Tue Sep 12 15:57:20 EDT 2000 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. Tue Feb 6 18:39:13 EST 2001 nlc.c: emit auxcom_[], currently with just one element, the number of nonlinear constraints. Under -f, this becomes common /auxcom/ nlc. Tue Feb 13 23:08:12 EST 2001 cops.c: fix bug (leading to invalid C or Fortran) in handling abs(). Wed Feb 14 11:41:52 EST 2001 cops.c: fix bug (leading to invalid C or Fortran) under -1 or -3 with min(...) and max(...). Wed Feb 14 23:08:44 EST 2001 nlc.c: when generating funelb or funnelb, add x as a param (in case it's referenced). Fri Mar 2 12:52:33 EST 2001 nlc.c: add two more command line options (-4 and -5); invoke "nlc -?" for details. Thu Mar 8 15:59:12 EST 2001 nlc.c: fix glitch with "nlc -f -1", "nlc -f -3", and "nlc -f -5": supply a missing "return" needed when multiple objectives are present. Mon Mar 12 18:23:13 EST 2001 nlc.c: fix gradient bug that only bit with multiple objectives, and (under -f) fix glitch in formatting computed gotos with many targets. Tue Mar 20 17:33:32 EST 2001 nlc.c, cops.c: fix glitches with max(...) involving defined variables and, under -f, with case numbering, both for max(...) and for multiple objectives. Under -f, adjust colrow so it accords with funcom_ without -f: the (new) first nobj entries indicate whether the corresponding objective is to be minimized (0) or maximized (1). Fix a bug in computing derivatives of defined variables used in several objectives or constraints. An example where this bug bit (with wrong partials w.r.t y) is: var x := .1; var y := -.1; var p = 100*(y - x^2)^2 + (1 - y)^2; var q = x*(x + 1); minimize ox: max(p,q); minimize op: p; Mon Apr 9 19:20:47 EDT 2001 nlc.c: fix a glitch (missing newline under -f, missing ";" otherwise) that could cause "integer cond(350) double precision t1" or "static int cond[350] double t1" to appear. nlc.c, cops.c: fix a bug that could cause out-of-range subscripts with if-then-else expressions whose "then" and "else" expressions were both constant. Example (of a bad use of if-then-else): var x{1..2}; s.t. foo{i in 1..2}: (if x[i] >= 3 && x[i] <= 4 || x[i] >= 7 && x[i] <= 8 then 0 else 1) == 0; nlc.c: omit some empty "then" and "else" blocks, and perhaps fix a derivative-computation bug with "else" blocks (though a simple example seems hard to find). Wed Aug 7 18:33:10 EDT 2002 nlc.c: fix bug in Jacobian computations under -d: some J subscripts for nonconstant partials were not adjusted for -d (case STOR_JAC). Thu Mar 4 01:01:48 MST 2004 Update c_op.hd, opcode.hd, r_ops1.hd to accord with solver-interface libarary changes of 4 Feb. 2003. nl2nlc.c: add Stderr_init_ASL() call (normally done by ASL_alloc()) so references to Stderr do not fault under Linux. Wed Mar 24 00:33:25 MST 2004 nlc.c: emit declarations for auxiliary routines defined in nlcmisc.c; ch3.c (sample output) updated accordingly. (Some compilers complain when such declarations are missing.) Sun Jul 18 22:55:22 MDT 2004 nlc.c: fix a bug revealed in a complicated example. Tue May 26 22:51:09 MDT 2009 nlc.c: fix a glitch (missing & on 2nd arg) in calls on the C version of domain_(...), which may be called when expressions involve atanh() and derivatives of sqrt(). 20150212 c_op.hd, opcode.hd, r_ops1.hd: update to reflect ASL changes of 20141024. (Without this update, nlc could fault.)