COIN-OR::LEMON - Graph Library

source: glpk-cmake/ChangeLog @ 1:c445c931472f

Last change on this file since 1:c445c931472f was 1:c445c931472f, checked in by Alpar Juttner <alpar@…>, 10 years ago

Import glpk-4.45

  • Generated files and doc/notes are removed
File size: 90.5 KB
Line 
1Sun Dec 05 12:00:00 2010 Andrew Makhorin <mao@gnu.org>
2
3        * GLPK 4.45 (30:0:30) has been released
4
5        * glplpx01.c
6        A bug (it_cnt) in routine reset_parms was fixed.
7        Thanks to Ali Baharev <ali.baharev@gmail.com> for report.
8
9        * glpmpl03.c
10        A bug (print "text\") was fixed.
11        Thanks to Xypron <xypron.glpk@gmx.de> for report.
12
13        * glpsql.c
14        A precision bug was fixed.
15        Thanks to Xypron <xypron.glpk@gmx.de>.
16
17        * glpk.tex
18        Some typos were corrected.
19        Thanks to Robbie Morrison <robbie@actrix.co.nz>.
20
21Thu Jun 03 12:00:00 2010 Andrew Makhorin <mao@gnu.org>
22
23        * GLPK 4.44 (29:0:29) has been released
24
25        * glpapi14.c glpmpl.h glpmpl01.c glpmpl03.c glpmpl04.c
26        Implemented suffixes for variables and constraints.
27
28        * glpmpl06.c
29        Made changes to allow comment records in CSV files.
30
31        * glpapi17.c
32        Added and documented new API routine glp_cpp to solve Critical
33        Path Problem.
34
35Sat Feb 20 12:00:00 2010 Andrew Makhorin <mao@gnu.org>
36
37        * GLPK 4.43 (28:0:28) has been released
38
39        * glplib.h, glplib.c, glpenv.h, glpenv.c
40        The module glpenv was split into two modules glpenv and glplib.
41
42        * glpenv01.c, glpenv03.c, glpenv04.c, glpenv06.c
43        The following new API routines were added and documented:
44        glp_init_env, glp_free_env, glp_open_tee, glp_close_tee,
45        glp_error (macro), glp_difftime.
46
47        * glpapi16.c
48        New API routine glp_top_sort (topological sorting of ayclic
49        digraph) was added and documented.
50
51        * glpapi17.c
52        A serious bug was fixed in the routine glp_asn_prob_hall.
53
54        * glpnpp05.c
55        A bug was fixed in the LP/MIP preprocessor (hidden covering
56        inequalities).
57
58        * glpsql.c
59        Some improvements were made in the table driver (NULL data).
60        Thanks to Xypron <xypron.glpk@gmx.de> for contribution.
61
62        * configure.ac
63        Changes were made to use .dylib rather than .so under Mac OS.
64        Thanks to Noli Sicad <nsicad@gmail.com> for testing
65
66Wed Jan 13 12:00:00 2010 Andrew Makhorin <mao@gnu.org>
67
68        * GLPK 4.42 (27:0:27) has been released
69
70        * glpapi01.c, glpapi11.c, glpapi12.c, glpdmx.c
71        The following new API routines were added and documented:
72        glp_check_dup (check for duplicate elements in sparse matrix);
73        glp_sort_matrix (sort elements of the constraint matrix);
74        glp_read_prob (read problem data in GLPK format);
75        glp_write_prob (write problem data in GLPK format);
76        glp_analyze_bound (analyze active bound of non-basic variable);
77        glp_analyze_coef (analyze obj. coefficient at basic variable);
78        glp_print_ranges (print sensitivity analysis report; replaces
79        lpx_print_sens_bnds).
80
81        * glpapi20.c
82        New command-line options were added to glpsol:
83        --glp (read problem data in GLPK format);
84        --wglp (write problem data in GLPK format);
85        --lp (replaces --cpxlp);
86        --wlp (replaces --wcpxlp);
87        --ranges (print sensitivity analysis report).
88
89        * glpapi06.c
90        In the routine glp_init_smcp default value of the parameter
91        out_frq was changed to 500 (it was 200).
92
93        * glpipp.h, glpipp01.c, glpipp02.c
94        The old MIP preprocessor module was removed.
95
96        * glpapi09.c
97        Now the MIP solver uses the new MIP preprocessor (NPP).
98
99        * glplpx03.c
100        lpx_write_opb was disabled due to replacing IPP with NPP.
101
102        * glpnet09.c
103        Kellerman's heuristic to cover edges by cliques was added.
104
105        * glplib08.c
106        Recognition of special filenames "/dev/stdin", "/dev/stdout",
107        and "/dev/stderr" was added.
108
109        * glpk.tex
110        Chapter "Graph and network routines" was carried out from the
111        reference manual as a separate document.
112
113Mon Dec 21 12:00:00 2009 Andrew Makhorin <mao@gnu.org>
114
115        * GLPK 4.41 (26:0:26) has been released
116
117        * glpapi12.c
118        The following new API routines were added:
119        glp_transform_row (replaces lpx_transform_row);
120        glp_transform_col (replaces lpx_transform_col);
121        glp_prim_rtest (replaces lpx_prim_ratio_test);
122        glp_dual_rtest (replaces lpx_dual_ratio_test).
123        Note that values returned by glp_prim_rtest and glp_dual_rtest
124        differ from the ones retutned by the deprecated routines.
125
126        * glpnpp*.*
127        The LP/MIP preprocessor was essentially re-implemented.
128
129        * glpios03.c
130        The feature to remove inactive cuts from the active subproblem
131        was implemented.
132
133        * glpios11.c
134        The feature processing cuts stored in the cut pool was improved
135        (now it uses estimation of objective degradation).
136
137        * glpscg.*
138        Obsolete implemetation of the conflict graph was removed.
139
140        * glpmpl.h, glpmpl03.c, glpmpl04.c
141        FILE was replaced by XFILE to allow using GLPK I/O routines.
142
143        * glpsql.c, examples/sql, doc/tables.tex
144        The SQL table driver was changed to allow multiple arguments
145        separated by semicolon in SQL statements. Thanks to Xypron
146        <xypron.glpk@gmx.de>.
147
148        * glpk.h, glpapi14.c
149        New API routine glp_time was added (not documented yet).
150
151        * glpapi20.c
152        Two new options were added to glpsol: --seed value (initialize
153        pseudo-random number generator used in MathProg model with
154        specified seed value), and --ini filename (use as initial basis
155        previously saved with -w option).
156
157        * examples/xyacfs.mod
158        Thanks to Nigel Galloway <nigel_galloway@operamail.com> for
159        contribution.
160
161        * examples/dbf/*.*
162        Thanks to Noli Sicad <nsicad@gmail.com> for contribution.
163
164        * w32/*.*, w64/*.*
165        Scripts to build GLPK with Microsoft Visual Studio 2010 were
166        added. Thanks to Xypron <xypron.glpk@gmx.de> for contribution
167        and testing.
168
169Tue Nov 03 12:00:00 2009 Andrew Makhorin <mao@gnu.org>
170
171        * GLPK 4.40 (25:0:25) has been released
172
173        * glpdmx.c
174        Two new API routines were added:
175        glp_read_ccdata (read graph in DIMACS clique/coloring format);
176        glp_write_ccdata (write graph in DIMACS clique/coloring format).
177        Also an example file examples/sample.col was added.
178
179        * glpapi19.c, glpnet08.c
180        New API routine glp_wclique_exact was added. It is intended to
181        find a maximum weight clique with the exact algorithm developed
182        by Prof. P. Ostergard.
183
184        * glpnpp02.c
185        A bug was fixed in the LP preprocessor (routine npp_empty_col).
186        Thanks to Stefan Vigerske <stefan@math.hu-berlin.de> for the
187        bug report.
188
189        * glpios10.c
190        A bug was fixed and some improvements were made in the FPUMP
191        heuristic module. Thanks to Xypron <xypron.glpk@gmx.de>.
192
193        * glpapi12.c
194        A bug was fixed in the API routine glp_warm_up (dual
195        feasibility test was incorrect in maximization case). Thanks to
196        Uday Venkatadri <Uday.Venkatadri@dal.ca> for the bug report.
197
198        * glpapi16.c
199        Two new API routines were added:
200        glp_del_vertices (remove vertices from graph);
201        glp_del_arc (remove arc from graph).
202
203        * glpios09.c
204        The hybrid pseudocost branching heuristic was included in the
205        MIP solver. It is available on API level (iocp.br_tech should
206        be set to GLP_BR_PCH) and in the stand-alone solver glpsol
207        (via the command-line option --pcost). This heuristic may be
208        useful on solving hard MIP instances.
209
210        * glpios03.c
211        The branching heuristic by Driebeck and Tomlin (used in the
212        MIP solver by default) was changed to switch to branching on
213        most fractional variable if an lower bound of degradation of
214        the objective is close to zero for all branching candidates.
215
216Sun Jul 26 12:00:00 2009 Andrew Makhorin <mao@mai2.rcnet.ru>
217
218        * GLPK 4.39 (24:0:24) has been released
219
220        * glpsdf.c
221        New API routines to read plain data files were added.
222
223        * glpcpx.h, glpini.h, glpscl.h
224        These headers were removed.
225
226        * glpcpx.c
227        API routines glp_read_lp and glp_write_lp to read/write files
228        in CPLEX LP format were re-implemented. Now glp_write_lp
229        correctly writes double-bounded (ranged) rows by introducing
230        slack variables rather than by duplicating the rows. The data
231        structure glp_cpxcp and routine glp_init_cpxcp were added.
232
233        * amd/*
234        The 'xfree(NULL)' bug was fixed in the AMD routines. Thanks to
235        Niels Klitgord <niels@bu.edu> for the bug report.
236
237        * glpapi16.c
238        New API routines glp_set_vertex_name, glp_create_v_index,
239        glp_find_vertex, and glp_delete_v_index were added.
240
241        * glpdmx.c
242        New API routines glp_read_asnprob, glp_write_asnprob,
243        glp_read_ccformat, and glp_write_ccformat were added (the two
244        latter routines are not documented yet).
245
246        * glpapi18.c
247        New API routines glp_check_asnprob, glp_asnprob_lp,
248        glp_asnprob_okalg, and glp_asnprob_hall were added.
249
250        * glpini01.c, glpini02.c
251        The message "Crashing..." was changed to "Constructing initial
252        basis..." due to suggestion by Thomas Kahle <tom111@gmx.de>.
253
254        * glpapi14.c
255        New API routines glp_printf, glp_vprintf, glp_malloc,
256        glp_calloc, glp_free, and glp_assert were added.
257
258        * glplpp.h, glplpp01.c, glplpp02.c
259        Old LP presolver routines were removed. Now glp_simplex uses
260        new preprocessing routines (see glpnpp).
261
262        * glpapi12.c
263        New API routine glp_warm_up was added; it replaces the routine
264        lpx_warm_up.
265
266Sat May 02 12:00:00 2009 Andrew Makhorin <mao@mai2.rcnet.ru>
267
268        * GLPK 4.38 (23:0:23) has been released
269
270        * glpmps.c
271        API routines to read/write MPS files were re-implemented.
272
273        * glpspx02.c
274        Some improvements were made in the dual simplex routine.
275
276        * glpk.h
277        New structure glp_iptcp was added.
278
279        * glpnpp.h, glpnpp01.c, glpnpp02.c
280        New LP/MIP preprocessor. Currently it includes only some basic
281        routines and used only in the interior-point solver.
282
283        * glpapi08.c
284        API routine glp_interior was replaced by an improved version
285        (new LP/MIP preprocessor, new ordering algorithms).
286
287        New API routine glp_init_iptcp was added.
288
289        API routine glp_ipt_status may return two new statuses due to
290        changes in glp_interior.
291
292        * glpsol.c
293        New command-line options were added (ordering algorithm used in
294        the interior-point solver).
295
296        * amd/*.*, colamd/*.*
297        Two external software modules AMD and COLAMD/SYMAMD used in the
298        interior-point solver were included in the distribution.
299
300        For details see amd/README and colamd/README.
301
302        * glpnet03.c, glpnet04.c, glpnet05.c
303        A minor bug was fixed (_G => G_). Thanks to Nelson H. F. Beebe
304        <beebe@math.utah.edu> for bug report.
305
306Sun Mar 29 12:00:00 2009 Andrew Makhorin <mao@mai2.rcnet.ru>
307
308        * GLPK 4.37 (22:0:22) has been released
309
310        * glpk.h
311        iocp.fp_heur was added to enable/disable fpump heuristic.
312
313        * glpios10.c
314        ios_feas_pump was added (feasibility pump heuristic).
315
316        * glpsol.c
317        --fpump command-line option was added.
318
319        * glpsds.c
320        Plain data set routines were added to facilitate reading plain
321        data in application programs. Currently these routines are not
322        in API, though declared in glpk.h.
323
324        * glpapi08.c
325        A bug was fixed in the internal routine restore. (Due to this
326        bug dual solution components were computed incorrectly if the
327        problem was scaled.)
328
329        * glpapi10.c, glpapi11.c
330        The following new API routines were added:
331        glp_print_sol (replaces lpx_print_sol);
332        glp_print_ipt (replaces lpx_print_ips);
333        glp_print_mip (replaces lpx_print_mip);
334        _glp_check_kkt (replaces lpx_check_kkt, lpx_check_int).
335        Now the routine lpx_print_prob (deprecated) is equivalent to
336        the routine glp_write_lp.
337
338        * glpapi18.c, glpapi19.c
339        The following new API routines were added:
340        glp_read_graph (read graph from plain text file);
341        glp_write_graph (write graph to plain text file);
342        glp_weak_comp (find all weakly connected components);
343        glp_strong_comp (find all strongly connected components).
344
345        * configure.ac, Makefile.am
346        Changes were made: (a) to allow using autoreconf/autoheader;
347        (b) to allow building glpk in a directory other than its source
348        directory. Thanks to Marco Atzeri <marco_atzeri@yahoo.it> for
349        bug report.
350
351        * examples/shiftcover.mod
352        An example model in MathProg was added.
353        Thanks to Larry D'Agostino <Larry.D'Agostino@gmacrescap.com>
354        for contribution.
355
356Fri Feb 06 12:00:00 2009 Andrew Makhorin <mao@mai2.rcnet.ru>
357
358        * GLPK 4.36 (21:0:21) has been released
359
360        * glpnet06.c, glpnet07.c, glpapi19.c
361        The following new API routines were added:
362        glp_mincost_okalg     find minimum-cost flow with out-of-kilter
363                              algorithm
364        glp_maxflow_ffalg     find maximal flow with Ford-Fulkerson
365                              algorithm
366
367        * glpsol.c
368        Two new command-line options were added:
369        --mincost             read min-cost flow data in DIMACS format
370        --maxflow             read maximum flow data in DIMACS format
371
372        * doc/glpk.*
373        New edition of the reference manual was included.
374
375        * glpk.h
376        Duplicate symbols were removed to allow using swig.
377        Thanks to Kelly Westbrooks <kellywestbrooks@yahoo.com> and
378        Nigel Galloway <nigel_galloway@operamail.com> for suggestion.
379
380        * glpcpx.c
381        A minor defect was fixed in the routine glp_write_lp.
382        Thanks to Sebastien Briais <sbriais@free.fr> for bug report.
383
384        * glpsql.c
385        A minor bug was fixed. Thanks to Xypron <xypron.glpk@gmx.de>
386        for patch.
387
388        * examples/hashi.mod, examples/shikaku.mod
389        Two example models in MathProg were added. Thanks to Sebastian
390        Nowozin <nowozin@gmail.com> for contribution.
391
392        * examples/qfit.mod, examples/yacfs.mod
393        Two example models in MathProg were added. Thanks to Nigel
394        Galloway <nigel_galloway@operamail.com> for contribution.
395
396Fri Jan 09 12:00:00 2009 Andrew Makhorin <mao@mai2.rcnet.ru>
397
398        * GLPK 4.35 (20:0:20) has been released
399
400        * glpk.h, glpapi.c, glpnet.c
401        The following new API routines were added:
402        glp_create_graph      create graph
403        glp_set_graph_name    assign (change) graph name
404        glp_add_vertices      add new vertices to graph
405        glp_add_arc           add new arc to graph
406        glp_erase_graph       erase graph content
407        glp_delete_graph      delete graph
408        glp_read_mincost      read minimum cost flow problem data in
409                              DIMACS format
410        glp_write_mincost     write minimum cost flow problem data in
411                              DIMACS format
412        glp_mincost_lp        convert minimum cost flow problem to LP
413        glp_netgen            Klingman's network problem generator
414        glp_gridgen           grid-like network problem generator
415        glp_read_maxflow      read maximum flow problem data in DIMACS
416                              format
417        glp_write_maxflow     write maximum flow problem data in DIMACS
418                              format
419        glp_maxflow_lp        convert maximum flow problem to LP
420        glp_rmfgen            Goldfarb's maximum flow problem generator
421
422        * doc/glpk.*
423        New edition of the reference manual was included.
424
425        * examples/sample.min, examples/sample.max
426        Two example data files in DIMACS format were added.
427
428        * glplib04.c
429        The statement "if (c = '\n') fflush(stdout)" was added to the
430        internal routine xputc to provide "real-time" terminal output.
431        Thanks to Luiz Bettoni <bettoni@cpgei.ct.utfpr.edu.br> for
432        suggestion.
433
434        * glpmpl05.c
435        A minor bug was fixed in the internal routine mpl_fn_time2str.
436        Thanks to Stefan Vigerske <stefan@vigerske.de> for bug report.
437
438        * w32/makefile, w64/makefile
439        The flag -O2 (/O2) was added to some makefiles.
440
441Thu Dec 04 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
442
443        * GLPK 4.34 (19:0:19) has been released
444
445        * src/glpios03.c
446        A bug was fixed in the internal routine branch_on. Thanks to
447        Nigel Galloway <nigel_galloway@operamail.com> for bug report.
448
449        * src/glpmpl05.c
450        Three new MathProg functions were included:
451        gmtime    obtaining current calendar time
452        str2time  converting character string to calendar time
453        time2str  converting calendar time to character string
454        Thanks to Xypron <xypron.glpk@gmx.de>.
455
456        * doc/glpk.*, doc/gmpl.*
457        A new edition of the GLPK reference manual and GNU MathProg
458        language description were included.
459
460Thu Oct 30 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
461
462        * GLPK 4.33 (18:0:18) has been released
463
464        * glpapi*.*
465        The following new API routines were added:
466        glp_copy_prob         copy problem object content
467        glp_exact             solve LP in exact arithmetic
468                              (makes lpx_exact deprecated)
469        glp_get_unbnd_ray     determine variable causing unboundedness
470                              (makes lpx_get_ray_info deprecated)
471        glp_interior          solve LP with interior-point method
472                              (makes lpx_interior deprecated)
473
474        * glpapi*.*
475        The following new API routines for processing models written in
476        the GNU Mathprog language were added to the package:
477        glp_mpl_alloc_wksp    allocate the translator workspace
478        glp_mpl_read_model    read and translate model section
479        glp_mpl_read_data     read and translate data section
480        glp_mpl_generate      generate the model
481        glp_mpl_build_prob    build LP/MIP instance from the model
482        glp_mpl_postsolve     postsolve the model
483        glp_mpl_free_wksp     deallocate the translator workspace
484        (These routines make lpx_read_model deprecated.)
485
486        * src/glpapi17.c, examples/glpsol.c
487        The stand-alone solver glpsol was re-implemented with new API
488        routines.
489
490        * src/glpsql.c
491        Some bugs were fixed in the SQL table driver. Thanks to Xypron
492        <xypron.glpk@gmx.de>.
493
494        * examples/cplex/*.*
495        A crude implementation of CPLEX-like interface to GLPK API was
496        added to the package. See examples/cplex/README.
497
498Fri Oct 03 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
499
500        * GLPK 4.32 (17:0:17) has been released
501
502        * glpmpl01.c
503        A bug was fixed. Due to this bug iterated expressions having
504        an indexing expression whose dummy indices are bound to some
505        values, i.e. like sum{(i+1,j,k-1) in E} x[i,j,k] are evaluated
506        incorrectly. Namely, current value of such expressions is not
507        invalidated when corresponding dummy indices (like i and k in
508        the example above) are changed, that erroneously results in the
509        same value evaluated for the first time.
510
511        * glpios03.c
512        Euclidean reduction of the local objective bound was added in
513        the routine glpios03.c.
514
515        * glpapi11.c
516        The following new branch-and-cut API routines were added:
517        glp_ios_row_attr      determine additional row attributes;
518        glp_ios_pool_size     determine current size of the cut pool;
519        glp_ios_add_row       add constraint to the cut pool;
520        glp_ios_del_row       delete constraint from the cut pool;
521        glp_ios_clear_pool    delete all constraints from the cut pool.
522
523        * glpapi08.c
524        The following new features were included in the branch-and-cut
525        solver (the API routine glp_intopt):
526        MIP presolver;
527        mixed cover cut generator;
528        clique cut generator.
529        Due to the MIP presolver glp_intopt may additionally return
530        GLP_ENOPFS and GLP_ENODFS, if primal or dual infeasibility of
531        LP relaxation is detected by the presolver. Also the return
532        code GLP_EMIPGAP was introduced to correctly indicate that the
533        mip gap tolerance is reached.
534
535        * glplpx01.c
536        Now the obsolete API routines lpx_integer and lpx_intopt are
537        completely superseded by the API routine glp_intopt that makes
538        them deprecated.
539
540        * glpmpl05.c
541        Now the table driver name "iODBC" can be specified as "ODBC".
542
543        * glpmpl03.c
544        A bug fixed in the routine free_dca.
545        Thanks to Xypron <xypron.glpk@gmx.de>.
546
547        * glpsql.c
548        A bug was fixed in the SQL table driver.
549        Thanks to Xypron <xypron.glpk@gmx.de>.
550
551        * examples/glpsol.c
552        Changes were made to allow multiple MathProg data files.
553
554        * doc/glpk.*
555        A new edition of the GLPK reference manual was included.
556
557        * doc/tables.*
558        A new edition of the supplement "Using data tables in the GNU
559        MathProg language" was included.
560
561Tue Sep 02 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
562
563        * GLPK 4.31 (16:0:16) has been released
564
565        * glpspx.h, glpspx01.c, glpspx02.c, glpapi06.c
566        The dual simplex solver (spx_dual_opt) was replaced by a new
567        implementation of the two-phase dual simplex method (spx_dual).
568        Old simplex method routines (spx_prim_opt, spx_prim_feas, and
569        spx_dual_opt) were removed from the package.
570
571        * glpk.h, glpscl.h, glpscl.c, glpapi04.c
572        New API routine glp_scale_prob was added. It replaces routine
573        lpx_scale_prob which is deprecated.
574
575        * glpk.h, glpini.h, glpini01.c, glpini02.c, glpapi05.c
576        New API routines glp_std_basis, glp_adv_basis, glp_cpx_basis
577        were added. They replace routines lpx_std_basis, lpx_adv_basis,
578        lpx_cpx_basis which are deprecated.
579
580        * glpdmp.c
581        8-byte data alignment was added to the module (sufficient for
582        both ILP32 and LP64 environments).
583
584        * glplib07.c
585        16-byte data alignment was added to the module to provide
586        compatibility with LP64 environment (8-byte is not sufficient
587        due to jmp_buf; thanks to Xypron for investigation).
588
589        * glplpx16.c
590        New version of the routine lpx_write_pb was added. Thanks to
591        Oscar Gustafsson <oscarg@isy.liu.se> for the contribution.
592
593        * w32/VC9, w64/VC9
594        Makefiles and batch files were added to build GLPK under 32-
595        and 64-bit Windows with Microsoft Visual Studio Express 2008.
596        Thanks to Heinrich Schuchardt <heinrich.schuchardt@gmx.de> for
597        the contribution and testing.
598
599        * w32/DM, w32/OWC
600        Makefiles and batch files were added to build GLPK with Digital
601        Mars C/C++ 8.50 and Open Watcom C/C++ 1.6 (32-bit Windows).
602
603Wed Aug 13 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
604
605        * GLPK 4.30 (15:0:15) has been released
606
607        * glpspx.h, glpspx03.c, glpapi06.c
608        The primal simplex solver (spx_prim_opt, spx_prim_feas) was
609        replaced by a new implementation (spx_primal), which currently
610        provides the same features as the old version.
611
612        * glpmpl01.c, glpmpl03.c
613        Some changes were made in the MathProg translator to allow <,
614        <=, >=, and > on comparing symbolic values. Thanks to Heinrich
615        Schuchardt <heinrich.schuchardt@gmx.de> for patches.
616
617        * glplpx10.c
618        Internal routine set_d_eps in the exact LP solver was changed
619        to prevent approximation errors in case of integral data.
620        Thanks to Markus Pilz <pilz@cs.uni-bonn.de> for bug report.
621
622XXX XXX XX 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
623
624        * GLPK 4.29 (14:0:14) has been released
625
626        * configure.ac
627        The configure script was changed to disable optional features
628        by default. For details see file INSTALL.
629
630        * glpipp02.c
631        A bug was fixed in the internal routine reduce_bounds. Thanks
632        to Anne-Laurence Putz <anne-laurence.putz@eurodecision.com> for
633        the bug report.
634
635        * glpapi01.c
636        New API routine glp_erase_prob was added.
637
638        * glpapi13.c
639        New API routines glp_read_mps and glp_write_mps were added.
640        They replace API routines lpx_read_mps, lpx_read_freemps,
641        lpx_write_mps, and lpx_write_freemps, which are deprecated.
642
643        * glpapi14.c
644        New API routines glp_read_lp and glp_write_lp were added. They
645        replace API routines lpx_read_cpxlp and lpx_write_cpxlp, which
646        are deprecated.
647
648        * glpsql.c
649        Minor bug was fixed. Thanks to Xypron <xypron.glpk@gmx.de> for
650        the bug report.
651
652Tue Mar 25 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
653
654        * GLPK 4.28 (13:0:13) has been released
655
656        * glplib.h, glplib.c
657        Three wrapper routines xdlopen, xdlsym, and xdlclose, which
658        provide the shared library support, were added. A particular
659        version of these routines depends on the option --enable-dl
660        passed to the configure script (see file INSTALL for details).
661        Thanks to Rafael Laboissiere <rafael@debian.org> for useful
662        advices concerning the shared library support.
663
664        * glpsql.c
665        A static linking to iODBC and MySQL libraries used in the
666        MathProg table drivers was replaced by a dynamic linking to
667        corresponding shared libraries.
668        Many thanks to Heinrich Schuchardt <heinrich.schuchardt@gmx.de>
669        for the contribution and to Vijay Patil <vijay.patil@gmail.com>
670        for testing this feature under Windows XP.
671
672        * glpgmp.h, glpgmp.c
673        A bug (which appeared only on 64-bit platforms) was fixed.
674        Thanks to Axel Simon <Axel.Simon@ens.fr> for the bug report.
675
676        * glpapi.c
677        A bug was fixed in the api routine glp_add_cols. (If the basis
678        is valid, adding column keeps it valid, however, col->bind was
679        set to -1 rather to 0.)
680        Thanks to Cedric[FR] <fox2113@wanadoo.fr> for the bug report.
681
682        * glplib.c
683        64-bit unsigned int type glp_ulong and corresponding routines
684        were replaced by 64-bit signed int type xlong_t.
685
686        * glpk.h, glpapi.c
687        The type glp_ulong was replaced by glp_long. This affects only
688        the api routine glp_mem_usage.
689
690        * glplib.c
691        Compressed data file support was added. This feature requires
692        the zlib data compression libraries and allows compressing and
693        decompressing .gz files "on the fly".
694
695        * glpcli.h, glpcli.c
696        Command-line interface routines were added. (This feature is
697        incomplete so far.)
698
699Sun Mar 02 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
700
701        * GLPK 4.27 (12:0:12) has been released
702
703        * glpsql.h, glpsql.c
704        Two MathProg table drivers for iODBC and MySQL contributed by
705        Heinrich Schuchardt <heinrich.schuchardt@gmx.de> were added to
706        the package.
707
708        * glpmpl05.c
709        Mathprog table driver for xBASE was added to the package.
710
711        * glpmpl03.c
712        A minor was fixed in the MathProg translator (if some field
713        specified in the table statement is missing in corresponding
714        input table, the bug causes abnormal termination). Thanks to
715        Heinrich Schuchardt <heinrich.schuchardt@gmx.de> for the bug
716        report.
717
718        * glpmpl.h, glpmpl.c
719        STRING data type was replaced by plain character strings.
720
721Sun Feb 17 12:00:00 2008 Andrew Makhorin <mao@mai2.rcnet.ru>
722
723        * GLPK 4.26 (11:0:11) has been released
724
725        * glpmpl.h, glpmpl01.c, glpmpl03.c, glpmpl05.c
726        The table statement was implemented. Description of this new
727        feature is given in file doc/tables.txt.
728
729        * glpios03.c
730        A bug causing zero divide error on computing euclidean norm of
731        the cut coefficient vector was fixed.
732
733Wed Dec 19 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
734
735        * GLPK 4.25 (10:0:10) has been released
736
737        * glpapi10.c
738        Routines lpx_eval_tab_row and lpx_eval_tab_col were replaced by
739        glp_eval_tab_row and glp_eval_tab_col.
740
741        * glpios03.c, glpios05.c
742        Gomory's mixed integer cuts were implemented.
743
744        * glpscs.h, glpscs.c
745        Segmented character string routines are no longer used and were
746        removed from the package.
747
748Wed Nov 21 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
749
750        * GLPK 4.24 (9:0:9) has been released
751
752        * src/glplpx16.c
753        A bug was fixed in the routine lpx_write_cpxlp. If a variable
754        x has upper bound and no lower bound, it should appear in the
755        bounds section as "-inf <= x <= u", not as "x <= u". Thanks to
756        Enric Rodriguez <erodri@lsi.upc.edu> for the bug report.
757
758        * src/glpios03.c, src/glpios04.c, src/glpios05.c
759        MIR (mixed integer rounding) cuts were implemented.
760
761Sun Oct 28 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
762
763        * GLPK 4.23 (8:0:8) has been released
764
765        * src/glplib05.c, configure.ac
766        Check for vsnprintf was added.
767
768        * include/glppds.h, src/glppds.c
769        A module to scan plain data was added.
770
771        * src/glpapi09.c
772        The following new API routines were added:
773        glp_read_sol    read basic solution from text file;
774        glp_write_sol   write basic solution to text file;
775        glp_read_ipt    read interior-point solution from text file;
776        glp_write_ipt   write interior-point solution to text file;
777        glp_read_mip    read MIP solution from text file;
778        glp_write_mip   write MIP solution to text file.
779
780        * src/glpapi12.c
781        Advanced API routine glp_free_env was added.
782
783        * examples/glpsol.c
784        The following three command-line options were added:
785        --mipgap tol    set relative MIP gap tolerance
786        -r filename     read solution from filename
787        -w filename     write solution to filename
788
789Wed Sep 19 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
790
791        * GLPK 4.22 (7:0:7) has been released
792
793        * src/glpios02.c
794        A bug was fixed in the MIP preprocessor (ios_preprocess_node).
795        Thanks to Roberto Bagnara <bagnara@cs.unipr.it> (Department of
796        Mathematics, University of Parma, Italy) for the bug report.
797
798        * src/glpios02.c
799        A bug was fixed in the MIP preprocessor (col_implied_bounds),
800        due to which constraint coefficients with small magnitude could
801        lead to wrong implied bounds of structural variables.
802
803        * src/glpipp02.c
804        A similar bug was fixed in the routine reduce_bounds.
805
806        * src/glpapi01.c
807        A bug was fixed in the routines glp_set_mat_row and
808        glp_set_mat_col. (The bug appeared due to incorrect removing
809        zero elements from the row/column lists.)
810
811        * src/glplpx14.c
812        A bug was fixed in the API routines lpx_read_mps and
813        lpx_read_freemps, due to which bounds of type LI specified in
814        BOUNDS section were incorrectly processed.
815
816        * src/glplib05.c
817        A call to standard function vsprintf was replaced by a call to
818        vsnprintf for security reasons. Many thanks to Peter T. Breuer
819        <ptb@inv.it.uc3m.es> and Rafael Laboissiere <rafael@debian.org>.
820
821Tue Aug 28 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
822
823        * GLPK 4.21 (6:0:6) has been released
824
825        * glpscg.h, glpscg.c
826        Routines to maintain sparse cliqued graph were added.
827
828        * glpios02.c
829        MIP preprocessing routines were added.
830
831        * glpk.h, glpios.h, glpios03.c
832        New reasons for calling the callback routine were introduced
833        in the MIP solver.
834
835        * glpapi08.c
836        Default backtracking strategy was changed to best local bound.
837
838        * glpapi11.c
839        New API routine glp_term_out to enable/disable terminal output
840        was added.
841
842        * glprng.h, glprng02.c
843        Two routines to generate uniformly distributed pseudo-random
844        floating-point numbers were added.
845
846Thu Jul 26 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
847
848        * GLPK 4.20 (5:0:5) has been released
849
850        * glpk.h, glpapi08.c
851        The routine lpx_integer was replaced by an equivalent routine
852        glp_intopt. Also new API routine glp_init_iocp was added.
853
854        * glpiet.h, glpiet.c
855        Routines implementing the implicit enumeration tree are
856        no longer used and therefore were removed from the package.
857
858        * glpios.h, glpios01.c, glpios02, glpios03
859        Routines implementing the integer optimization suite being
860        replaced by a new version were removed from the package.
861
862        * glpmip.h, glpmip01.c, glpmip02.c
863
864        Routines implementing the B&B method being replaced by a new
865        version were removed from the package.
866
867        * glpios.h, glpios01.c, glpios02.c
868
869        Routines implementing a new version of the integer optimization
870        suite (IOS) based on the B&B method were added to the package.
871
872        * glpk.h, glpapi10.c
873        Branch-and-bound interface routines were added to the package.
874
875        * examples/tspsol.c
876        The TSP solver based on old version of the integer optimization
877        suite is no more supported and was removed from the package.
878
879        * glpipp02.c
880        An error in the routine reduce_bounds was fixed; thanks to
881        Graham Rockwell <bionomicron@gmail.com> for the bug report.
882
883        * glpk.latex
884        A new edition of the reference manual was included.
885
886Thu Jul 05 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
887
888        * GLPK 4.19 (4:0:4) has been released
889
890        The principal change is upgrading to GPLv3.
891
892        * glpapi01.c
893        A serious bug in the routine glp_del_cols was fixed; thanks to
894        Cedric[FR] <fox2113@wanadoo.fr> for the bug report. The bug
895        appeared because on deleting non-basic columns the basis header
896        remained valid, however, contained invalid (old) column ordinal
897        numbers.
898
899        * glpapi10.c
900        A new advanced API routine glp_mem_limit was added.
901
902        * glplpx01.c
903        The case GLP_EBOUND was added to the routine lpx_simplex.
904        Thanks to Cameron Kellough <Cameron.Kellough@sri.com> for the
905        bug report.
906
907        * glplpx19.c
908        An API routine lpx_write_pb to write the problem instance in
909        OPB (pseudo boolean) format format was added. Thanks to Oscar
910        Gustafsson <oscarg@isy.liu.se> for the contribution.
911
912        * glpsol.c
913        Two new options --wpb and --wnpb were added to glpsol to write
914        the problem instance in OPB format.
915
916Mon Jun 25 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
917
918        * GLPK 4.18 (3:0:3) has been released
919
920        * glplib.h
921        Type names ulong_t and uldiv_t were changed to glp_ulong and
922        glp_uldiv to avoid conflicts with standard type names on some
923        platforms. Thanks to Boris Wirtz <Boris.Wirtz@uni-oldenburg.de>
924        for the bug report.
925
926        * glpbfd.*, glpfhv.*, glplpf.*
927        LP basis factorization routines were made tidy.
928
929        * glpk.h, glpapi04.c
930        The following API routines were added:
931        glp_set_rii, glp_set_sjj, glp_get_rii, glp_get_sjj.
932
933        * glpk.h, glpapi06.c
934        The routine lpx_simplex was replaced by an equivalent routine
935        glp_simplex. Also new API routine glp_init_smcp was added.
936
937        * glpk.h, glpapi09.c
938        The following advanced API routines were added:
939        glp_bf_exists, glp_factorize, glp_bf_updated, glp_get_bfcp,
940        glp_set_bfcp, glp_get_bhead, glp_get_row_bind, glp_get_col_bind,
941        glp_ftran, glp_btran.
942
943        * glpk.latex
944        A new edition of the reference manual was included.
945
946        * examples/dea.mod, examples/food.mod, examples/food2.mod
947        Three examples in the MathProg language were added.
948        Thanks to Sebastian Nowozin <nowozin@gmail.com>.
949
950Sat May 26 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
951
952        * GLPK 4.17 (2:0:2) has been released
953
954        * glpdmp.h, glpdmp.c
955        Memory pool routines were replaced by a new version.
956
957        * glpscs.h, glpscs.c
958        Segmented string routines were replaced by a new version.
959
960        * glplpx08.c, glplpx09.c
961        Now the MIP problem may have no integer columns.
962
963        * glpapi01.c
964        The routines glp_set_mat_row, glp_set_mat_col, and glp_load_mat
965        were modified to allow zero elements (which are not stored in
966        the constraint matrix).
967
968        * glpscf.h, glpscf.c
969        Schur complement factorization routines were implemented.
970
971        * glplpf.h, glplpf.c
972        LP basis factorization routines based on LU-factorization and
973        Schur complement were implemented.
974
975        * glplpx02.c, glplpx03.c
976        New control parameter LPX_K_BFTYPE was introduced to choose the
977        basis factorization type used by the simplex method routines.
978
979        * glpsol.c
980        Three new command-line options were added to choose the basis
981        factorization type used by the simplex method routines: --luf,
982        --cbg, and --cgr.
983
984        * glpk.latex
985        A new edition of the reference manual was included.
986
987Sat May 05 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
988
989        * GLPK 4.16 (1:0:1) has been released
990
991        * glpk.h, glpapi.c, glplpx01.c, glplpx02.c
992        Names of a number basic api routines were changed and now have
993        the prefix 'glp_'. To keep backward compatibility these routines
994        are also available via their old names prefixed with 'lpx_'.
995
996        * glplpx19.c
997        Three new api routines were added: glp_version, glp_term_hook,
998        and glp_mem_usage.
999
1000        * glpk.latex, gmpl.texi
1001        A new edition of the reference manuals was included.
1002
1003        * lpglpk40.c
1004        This example program is no longer supported and therefore was
1005        removed from the package.
1006
1007Sun Feb 18 12:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
1008
1009        * GLPK 4.15 (0:0:0) has been released
1010
1011        * configure.ac, Makefile.am
1012        Autotools specification files were changed to use GNU Libtool
1013        that allows building the static as well as shared GLPK library.
1014        Thanks to Rafael Laboissiere <rafael@debian.org>.
1015
1016Mon Feb 05 08:00:00 2007 Andrew Makhorin <mao@mai2.rcnet.ru>
1017
1018        * GLPK 4.14 has been released
1019        Now GLPK conforms to ILP32, LLP64, and LP64 programming models
1020        (the latter seems to be the ultimate choice regarding 64-bit
1021        architectures). Note that GLPK itself is a 32-bit application,
1022        and the conformity only means that the package works correctly
1023        on all these arenae. Nevertheless, on 64-bit platforms it is
1024        possible to use more than 4GB of memory, if necessary.
1025
1026        * Makefile
1027        Starting from this release only the header glpk.h is needed to
1028        be installed.
1029
1030        * glplib01.c
1031        Two routines bigmul and bigdiv which performs multiplication
1032        and division of unsigned integers of arbitrary precision were
1033        added.
1034
1035        * glplib02.c
1036        A set of 64-bit arithmetic routines were added.
1037
1038        * glplib04.c
1039        Some low-level library routines were improved and renamed.
1040
1041        * glpcfg.h
1042        The macro GLP_TM_SPEC were introduced to specify a version of
1043        the time routine depending on the host environment.
1044
1045Mon Nov 13 12:00:00 2006 Andrew Makhorin <mao@mai2.rcnet.ru>
1046
1047        * GLPK 4.13 has been released
1048
1049        * configure.in
1050        '-lm' bug was fixed.
1051
1052        * glpbfx.h, glpbfx.c
1053        Basis factorization interface routines based on exact (bignum)
1054        arithmetic were implemented.
1055
1056        * glpssx.h, glpssx1.c, glpssx2.c
1057        Simplex method routines based on exact (bignum) arithmetic were
1058        implemented.
1059
1060        * glplpx6e.c
1061        The routine lpx_exact, which is an easy-to-use driver to the
1062        exact simplex method, was added.
1063
1064        * glpsol.c
1065        Two command-line options were added: '--exact' and '--xcheck'.
1066
1067Wed Nov 08 12:00:00 2006 Andrew Makhorin <mao@mai2.rcnet.ru>
1068
1069        * GLPK 4.12 has been released
1070
1071        * glpcfg.h
1072        The package configuration file was added.
1073
1074        * glplib2.c
1075        Alternative version of the routines umalloc, ucalloc, and ufree
1076        was provided. It does not limit the amount of allocated memory
1077        to INT_MAX bytes and therefore can be used on platforms where
1078        sizeof(void *) > sizeof(int). To enable this version one should
1079        define the preprocessor variable GLP_HUGE_MEM.
1080
1081        * glprng.c
1082        The routine rng_create_rand was changed to initialize the
1083        generator using seed = 1, not 0, to conform ISO C requirements.
1084
1085        * glpgmp.h, glpgmp.c
1086        A set of bignum arithmetic routines implementing operations on
1087        integers and rationals was added. These routines are compatible
1088        with the GNU MP library.
1089
1090        NOTE: To attain a much better performance it is recommended to
1091        use, if possible, the original GNU MP library rather than the
1092        GLPK version, by defining the preprocessor variable GLP_USE_GMP.
1093
1094        * glplux.h, glplux.c
1095        A tentative implementation of sparse LU-factorization based on
1096        exact (bignum) arithmetic was added.
1097
1098        * glpssx.h, glpssx.c
1099        A tentative implementation of some simplex method routines based
1100        on exact (bignum) arithmetic was added.
1101
1102        * glplpx6f.c
1103        A preliminary implementation of the routine lpx_exact_check was
1104        added. This routine checks the current basis for primal and dual
1105        feasibility using exact (bignum) arithmetic.
1106
1107        * examples/glpsol.c
1108        The command-line option '--xcheck' was introduced to check the
1109        current basis for feasibility using exact (bignum) arithmetic.
1110
1111Tue Jul 25 12:00:00 2006 Andrew Makhorin <mao@mai2.rcnet.ru>
1112
1113        * GLPK 4.11 has been released.
1114
1115        * include/glpbfi.h, src/glpbfi.c
1116        Basis factorization interface routines were added.
1117
1118        * include/glpluf.h, src/glpluf1.c
1119        Hypersparse solution routines were added.
1120
1121        * include/glpinv.h, src/glpinv1.c
1122        Hypersparse solution routines (fake version) were added.
1123
1124        * include/glpmpl.h, src/glpmpl.c
1125        Built-in functions card, length, and substr were implemented.
1126        Output redirection in the printf statement was implemented.
1127
1128        * examples/graph.mod, examples/crypto.mod
1129        Two example models illustrating new features of the modeling
1130        language were included.
1131
1132Thu May 11 12:00:00 2006 Andrew Makhorin <mao@mai2.rcnet.ru>
1133
1134        * GLPK 4.10 has been released.
1135
1136        * src/glplpx8a.c
1137        A fragment was added to the routines lpx_read_mps and
1138        lpx_read_freemps to accept LI bound type (it is similar to LO,
1139        however, additionally marks the column as integer).
1140
1141        * include/glpbfi.h, src/glpbfi.c
1142        The module glpbfi which implements the basis factorization
1143        interface (BFI) was added.
1144
1145        * src/glplpx7a.c
1146        The routine lpx_cover_cut to generate mixed cover cuts was
1147        added.
1148
1149        * src/glplpx7b.c
1150        The routine lpx_clique_cut to generate clique cuts and related
1151        routines to maintain the conflict graph were added.
1152
1153        * include/glplpx.h, src/glplpx5.c
1154        The routine lpx_cpx_basis implementing Bixby's algorithm to
1155        construct an initial LP basis was added.
1156
1157        * examples/glpsol.c
1158        Command-line option '--bib' was added which allows building
1159        an initial LP basis using Bixby's algorithm.
1160        Default command-line option '--mps' was changed to '--freemps'.
1161
1162        * examples/cf12a.mod, examples/cf12b.mod
1163        Two examples in MathProg (curve fitting problem) were added.
1164        Thanks to Dr. Harley Mackenzie <hjm@hardsoftware.com>.
1165
1166Tue Jan 17 12:00:00 2006 Andrew Makhorin <mao@mai2.rcnet.ru>
1167
1168        * GLPK 4.9 has been released.
1169
1170        * glpipp.h, glpipp1.c, glpipp2.c
1171        A MIP presolver were implemented (currently incomplete). It is
1172        used internally in the routine lpx_intopt (see below).
1173
1174        * glplpx6d.c, glplpx7a.c
1175        An advanced branch-and-bound solver (the routine lpx_intopt)
1176        were implemented.
1177
1178        * glplpx6c.c
1179        The routine lpx_check_int to check MIP feasibility conditions
1180        was added.
1181
1182        * glplpx8a.c
1183        The routine lpx_print_mip was changed to print MIP feasibility
1184        conditions.
1185
1186        * glpmpl.h, glpmpl1.c, glpmpl3.c
1187        The built-in functions sin, cos, atan, and atan2 were added to
1188        the MathProg language.
1189
1190        * doc/lang.*
1191        Some typos were fixed.
1192        Thanks to Minh Ha Duong <haduong@centre-cired.fr> (CIRED, CNRS).
1193
1194Wed Jan 12 12:00:00 2005 Andrew Makhorin <mao@mai2.rcnet.ru>
1195
1196        * GLPK 4.8 has been released.
1197
1198        * glpspx.h, glpspx1.c, glpspx2.c, glplpx6a.c
1199        Simplex method routines were changed due to a new format of the
1200        constraint matrix.
1201
1202        * glpmat.h, glpmat.c
1203        Sparse matrix routines were re-implemented using storage-by-rows
1204        format.
1205
1206        * glpipm.h, glpipm.c, glplpx6b.c
1207        Interior-point method routines were changed due to a new format
1208        of sparse matrices.
1209
1210        * glpchol.h, glpchol.c
1211        Old version of Cholesky factorization routines being replaced by
1212        a new one (see glpmat.c) was removed from the package.
1213
1214        * glplpx8c.c
1215        Minor bug was fixed in api routine lpx_read_cpxlp.
1216
1217Mon Aug 23 12:00:00 2004 Andrew Makhorin <mao@mai2.rcnet.ru>
1218
1219        * GLPK 4.7 has been released.
1220
1221        * glplpx.h, glplpx1.c
1222        New core API routines were added (but not documented yet):
1223        lpx_order_matrix, lpx_create_index, lpx_find_row, lpx_find_col,
1224        lpx_delete_index.
1225
1226        * glplpx8a.c
1227        API routine lpx_read_mps was re-implemented, and two new API
1228        routines lpx_read_freemps and lpx_write_freemps were added to
1229        support free MPS format.
1230
1231        * glplpx8c.c
1232        Two API routines lpx_read_cpxlp and lpx_write_cpxlp (formerly
1233        named lpx_read_lpt and lpx_write_lpt) were re-implemented.
1234
1235        * glpmps.h, glpmps.c
1236        This module formerly used in lpx_read_mps was removed from the
1237        package.
1238
1239        * glplpt.h, glplpt.c
1240        This module formerly used in lpx_read_lpt was removed from the
1241        package.
1242
1243        * glpmip.h, glpmip1.h, glpmip2.h
1244        New MIP routines mip_best_node and mip_relative_gap were added
1245        due to suggestion of Brady Hunsaker <hunsaker@engr.pitt.edu>.
1246
1247        * glpsol.c
1248        The following new command-options were added:
1249        --freemps  to read problem data in free MPS format
1250        --wfreemps to write problem data in free MPS format
1251        --cpxlp    to read problem data in CPLEX LP format
1252        --wcpxlp   to write problem data in CPLEX LP format
1253        --bas      to read LP basis from a text file in MPS format
1254        --wbas     to write LP basis to a text file in MPS format
1255        --mostf    to use "most fractional" branching heuristic
1256        --bestb    to use "best bound" backtracking heuristic
1257
1258        * contrib/deli/*.*
1259        GLPK Delphi interface module was temporarily removed from the
1260        distribution due to licensing problems.
1261
1262        * contrib/glpkmex/*.*
1263        GLPK Matlab interface module was temporarily removed from the
1264        distribution due to licensing problems.
1265
1266        * contrib/jni/*.*
1267        GLPK Java interface module was temporarily removed from the
1268        distribution due to licensing problems.
1269
1270Wed Aug 04 12:00:00 2004 Andrew Makhorin <mao@mai2.rcnet.ru>
1271
1272        * GLPK 4.6 has been released.
1273
1274        * glpmpl.h, glpmpl1.c, glpmpl2.c, glpmpl3.c, glpmpl4.c
1275        Three new statements were implemented in the GNU MathProg
1276        language: solve, printf, and for. Also some bugs were fixed.
1277
1278        * glplpx.h, glplpx8e.c
1279        Two API routines were added: lpx_read_prob and lpx_write_prob,
1280        which allow reading and writing problem data in GNU LP format.
1281
1282        * glpsol.c
1283        Three new command-line options were added: --glp (to read
1284        problem data in GNU LP format), --wglp (to write problem data
1285        in GNU LP format), and --name (to change problem name).
1286
1287        * glprng.h, glprng.c
1288        A portable pseudo-random number generator was implemented as a
1289        separate module.
1290
1291        * glplib4.c
1292        The old implementation of a pseudo-random number generator was
1293        removed from the package.
1294
1295        * doc/lang.*, doc/refman.*
1296        New edition of the GLPK documentation was included.
1297
1298        * contrib/glpkmex/*.*
1299        A new version of GLPKMEX was included in the distribution. For
1300        more details see contrib/glpkmex/ChangeLog.
1301
1302Mon Jul 19 12:00:00 2004 Andrew Makhorin <mao@mai2.rcnet.ru>
1303
1304        * GLPK 4.5 has been released.
1305
1306        * glpmip.h, glpmip1.c, glpmip2.c, glplpx6c.c
1307        New implementation of the branch-and-bound method was added.
1308        It replaces the old implementation, which was removed from the
1309        package.
1310
1311        * glpies.h, glpies1.c, glpies2.c, glpies3.c
1312        Modules used in the old implementation of the branch-and-bound
1313        method were removed from the package.
1314
1315        * glplib2.c
1316        Now if the preprocessor variable GLPHUGEMEM is defined, other
1317        version of the routines umalloc, ucalloc, and ufree is used on
1318        compiling the package. This allows avoiding memory allocation
1319        problems on platforms where sizeof(void *) > sizeof(int), for
1320        example, where addresses are 64-bit while integers are 32-bit.
1321        The modification was made due to a bug report provided by Karel
1322        Zimmermann <kzimm@diamant.jouy.inra.fr> and Christophe Caron
1323        <caron@diamant.jouy.inra.fr>.
1324
1325Sat Jan 17 12:00:00 2004 Andrew Makhorin <mao@mai2.rcnet.ru>
1326
1327        * GLPK 4.4 has been released.
1328
1329        * glplpx.h, glplpx*.c
1330        All API routines were re-implemented using new data structures.
1331        Some new API routines were added and some existing API routines
1332        became obsolete as shown below:
1333
1334        Obsolete API routine   Equivalent new API routine
1335        lpx_check_name         (no more supported)
1336        lpx_set_obj_c0         lpx_set_obj_coef
1337        lpx_set_row_coef       (no more supported)
1338        lpx_set_col_coef       lpx_set_obj_coef
1339        lpx_load_mat           (no more supported)
1340        lpx_load_mat3          lpx_load_matrix
1341        lpx_unmark_all         (no more supported)
1342        lpx_mark_row           (no more supported)
1343        lpx_mark_col           (no more supported)
1344        lpx_clear_mat          (no more supported)
1345        lpx_del_items          lpx_del_rows, lpx_del_cols
1346        lpx_get_row_bnds       lpx_get_row_type, lpx_get_row_lb,
1347                               lpx_get_row_ub
1348        lpx_get_col_bnds       lpx_get_col_type, lpx_get_col_lb,
1349                               lpx_get_col_ub
1350        lpx_get_obj_c0         lpx_get_obj_coef
1351        lpx_get_row_coef       (no more supported)
1352        lpx_get_col_coef       lpx_get_obj_coef
1353        lpx_get_row_mark       (no more supported)
1354        lpx_get_col_mark       (no more supported)
1355        lpx_get_row_info       lpx_get_row_stat, lpx_get_row_prim,
1356                               lpx_get_row_dual
1357        lpx_get_col_info       lpx_get_col_stat, lpx_get_col_prim,
1358                               lpx_get_col_dual
1359        lpx_get_ips_stat       lpx_ipt_status
1360        lpx_get_ips_row        lpx_ipt_row_prim, lpx_ipt_row_dual
1361        lpx_get_ips_col        lpx_ipt_col_prim, lpx_ipt_col_dual
1362        lpx_get_ips_obj        lpx_ipt_obj_val
1363        lpx_get_mip_stat       lpx_mip_status
1364        lpx_get_mip_row        lpx_mip_row_val
1365        lpx_get_mip_col        lpx_mip_col_val
1366        lpx_get_mip_obj        lpx_mip_obj_val
1367
1368        Obsolete API routines were kept for backward compatibility,
1369        however, they will be removed in the future.
1370
1371        * doc/refman.*
1372        New edition of the GLPK reference manual containing description
1373        of all new API routines was included.
1374
1375        * contrib/glpkmex/*.*
1376        GLPKMEX, a Matlab MEX interface to GLPK package, contributed by
1377        Nicolo Giorgetti <giorgetti@dii.unisi.it> was included.
1378
1379        * doc/GLPK_FAQ.txt
1380        GLPK FAQ contributed by Harley Mackenzie <hjm@bigpond.com> was
1381        included.
1382
1383Fri Dec 12 12:00:00 2003 Andrew Makhorin <mao@mai2.rcnet.ru>
1384
1385        * GLPK 4.3 has been released.
1386
1387        * configure.in
1388        The bug, due to which the standard math library is not linked on
1389        some platforms, was fixed.
1390
1391        * glpmpl3.c
1392        The bug (0 ** y) was fixed in the routine fp_power.
1393
1394        * glpmpl.h, glpmpl1.c, glpmpl3.c
1395        Some new built-in functions (round, trunc, Irand224, Uniform01,
1396        Uniform, Normal01, Normal) were added to the MathProg language.
1397
1398        * glpmpl1.c
1399        The MathProg syntax was changed to allow writing 'subj to'.
1400
1401        * glplpx.h, glplpx1.c, glplpx2.c
1402        The new api routine lpx_get_ray_info was added.
1403
1404        * glplpx8a.c
1405        The api routine lpx_print_sol was changed to print the number of
1406        non-basic variable, which causes primal unboundness.
1407
1408        * glpmps.c
1409        The code was changed to avoid errors on compiling the package on
1410        Mac OS X. Thanks to Andre Girard <andre@inrs-emt.uquebec.ca> for
1411        the bug report.
1412
1413        * doc/lang.*, doc/refman.*
1414        Several typos were fixed and some new material was added in the
1415        glpk documentation.
1416
1417Fri Nov 14 12:00:00 2003 Andrew Makhorin <mao@mai2.rcnet.ru>
1418
1419        * GLPK 4.2 has been released.
1420
1421        * glpiet.h, glpiet.c, glpios.h, glpios1.c, glpios2.c, glpios3.c
1422        A preliminary implementation of the Integer Optimization Suite
1423        (IOS) was included in the package. Eventually IOS will replace
1424        the Implicit Enumeration Suite (IES).
1425
1426        * glplpx.h, glplpx6d.c
1427        A dummy version of the integer optimization routine lpx_intopt
1428        was included in the package. Later this routine will replace the
1429        routine lpx_integer.
1430
1431        * examples/glpsol.c
1432        A new command-line option --int-opt was added to the solver to
1433        call lpx_intopt rather than lpx_integer.
1434
1435        * glpbcs.h, glpbcs1.c, glpbcs2.c
1436        Being replaced by IOS routines (see above) the Branch-and-Cut
1437        Framework (BCS) routines were removed from the package.
1438
1439        * examples/tspsol.c
1440        Stand-alone Symmetric TSP solver was completely re-programmed
1441        using IOS routines.
1442
1443        * glplib.h, glplib2.c, glplib4.c
1444        The random-number generator was implemented. It is based on the
1445        module GB_FLIB from the Stanford GraphBase originally developed
1446        by Donald Knuth.
1447
1448        * glphbsm.c, glplpx8a.c, glpmps.c
1449        All calls to fopen/fclose were replaced by corresponding calls
1450        to ufopen/ufclose due to bug reports provided by Morten Welinder
1451        <terra@gnu.org> and <jpark@sfwmd.gov>.
1452
1453        * glpmps.c
1454        The code was made re-entrant.
1455
1456        * glplpx8b.c
1457        API routine lpx_print_sens_bnds for bounds sensitivity analysis
1458        contributed by Brady Hunsaker <hunsaker@engr.pitt.edu> was added
1459        to the package. This feature is also available in glpsol via the
1460        command-line option --bounds.
1461
1462        * contrib/jni/*.*
1463        New version of GLPK JNI (Java Native Interface) contributed by
1464        Chris Rosebrugh <cpr@pobox.com> was added to the package.
1465
1466        * contrib/deli/*.*
1467        GLPK DELI (Delphi Interface) contributed by Ivo van Baren
1468        <i.van.baren@freeler.nl> was added to the package.
1469
1470        * glplpx3.c
1471        Default method to scale the problem was changed to equilibration
1472        scaling (lp->scale = 1 in lpx_reset_parms).
1473
1474        * glplpx6a.c
1475        Two minor (non-critical) typos were fixed due to report provided
1476        by Andrew Hamilton-Wright <andrewhw@ieee.org>.
1477
1478        * glplpp2.c
1479        An untested case (line 941) had been tested due to bug report
1480        provided by Jiri Spitz <jiri.spitz@telecom.cz>.
1481
1482        * w32bc5.mak, w32vc6.mak, w32vc6d.mak, d32dmc.mak
1483        Several makefiles were added to allow building GLPK library for
1484        some non-GNU 32-bit platforms.
1485
1486Sat Aug 23 12:00:00 2003 Andrew Makhorin <mao@mai2.rcnet.ru>
1487
1488        * GLPK 4.1 has been released.
1489
1490        * glpmpl1.c, glpmpl3.c
1491        Some bugs were fixed in the MathProg translator due to the bug
1492        reports provided by Giles Thompson <gwpt1@cus.cam.ac.uk>:
1493        conditional set expressions were incorrectly parsed;
1494        dimen attribute was not set by default when a set was used
1495        recursively in its own declaration;
1496        logical expressions ... in if ... then ... else ... did not
1497        work;
1498        displaying set expressions did not free memory allocated for
1499        temporary results.
1500
1501        * glpmpl3.c (reduce_terms)
1502        Implementation of summation of linear forms over domain was
1503        improved to reduce complexity of that operation from O(n*n) to
1504        O(n*log n). The improvement was made due to a report provided
1505        by Sebastien de Menten <sdementen@hotmail.com>.
1506
1507        * glplpx6a.c (line 1056), glpmip1.c (line 641)
1508        Two minor bugs were fixed due to the bug report provided by
1509        Kendall Demaree <kendal.demaree@verizon.net>.
1510
1511        * glplpx.h, glplpx6a.c
1512        The method of one artificial variable implemented in the routine
1513        lpx_prim_art and used on the phase I in the glpk simplex solver
1514        has a serious defect: for some lp instances it erroneously
1515        reports that the problem has no primal feasible solution. This
1516        error appears when the column of the artificial variable, which
1517        enters the basis to make it primal feasible, has large
1518        constraint coefficients, that leads to small reduced costs of
1519        non-basic variables and premature termination of the search,
1520        i.e. to wrong conclusion that the problem has no primal feasible
1521        solution. To avoid this defect the routine lpx_prim_feas was
1522        included. It implements the method of implicit artifical
1523        variables (based on minimization of the sum of infeasibilities),
1524        which is a bit slower but much more robust. The routine
1525        lpx_prim_feas having the same functionality now is used instead
1526        the routine lpx_prim_art.
1527
1528        * glpinv.h, glpinv.c
1529        The test used in the routine inv_update to detect low accuracy
1530        after updating LU-factorization of the basis matrix was replaced
1531        by a new, more robust test.
1532
1533        * glplpx6c.c
1534        Selecting an active node to be solved next in the routine
1535        btrack_bestp was changed. Now, if any integer feasible solution
1536        has not been found yet, the routine chooses an active node which
1537        has the minimal sum of integer infeasibilities.
1538
1539        * glpmip.h, glpmip1.c
1540        The additional flag int_obj was included in the structure
1541        MIPTREE used by the branch-and-bound. This flag is set in the
1542        routine mip_create_tree and used in the routine is_better. It
1543        means that the objective is integral, i.e. depends only on
1544        integer variables with integer objective coefficients. The test
1545        used in the routine check_integrality was also replaced by a
1546        new, more reasonable one.
1547
1548        * glplpx1.c
1549        A minor bug was fixed in the routine lpx_check_name.
1550
1551        * glpmpl.h, glpmpl4.c, glplpx8d.c
1552        The flag skip_data was added to the parameter list of the
1553        routine mpl_read_model. If this flag is set, the data section
1554        in the model file is ignored. Corresponding change was made in
1555        the routine lpx_read_model. Now, if both model and data files
1556        are specified, the data section in the model file is ignored.
1557
1558        * glplpx8c.c
1559        A minor bug (wrong format used for writing free columns) in the
1560        routine lpx_write_lpt was fixed due to the bug report provided
1561        by Bernhard Schmidt <schmidt@math.uni-augsburg.de>
1562
1563        * sample/glpsol.c
1564        The command-line parameter --tmlim, which allows limiting the
1565        solution time, was added.
1566
1567        * doc/lang.*, doc/refman.*
1568        New edition of the GLPK documentation was included.
1569
1570        * java-binding/*.*
1571        New version of the GLPK JNI (Java Native Interface) package was
1572        included in the distribution.
1573
1574        * sample/lpglpk40.c
1575        A non-trivial example was added. It allows using GLPK as a base
1576        LP solver for Concorde, a program for solving Traveling Salesman
1577        Problem (TSP). For details see comments in lpglpk40.c.
1578
1579        * sample/*.mod
1580        Some examples of LP and MIP models written in GNU MathProg were
1581        added.
1582
1583Tue May 06 12:00:00 2003 Andrew Makhorin <mao@mai2.rcnet.ru>
1584
1585        * GLPK 4.0 has been released.
1586
1587        * glpmpl.h, glpmpl1.c, glpmpl2.c, glpmpl3.c, glpmpl4.c
1588        The model translator for the GNU MathProg modeling language was
1589        implemented and included in the package.
1590
1591        * glplpx.h, glplpx8d.c
1592        The api routine lpx_read_model, which is an interface to the
1593        MathProg translator, was included in the package.
1594
1595        * glplpx.h, glplpx8a.c
1596        The api routine lpx_print_prob for writing LP/MIP problem data
1597        in plain text format was included in the package.
1598
1599        * sample/glpsol.c
1600        New version of the GLPK stand-alone LP/MIP solver that supports
1601        the GNU MathProg modeling language was implemented.
1602
1603        * doc/lang.latex, doc/lang.dvi, doc/lang.ps
1604        The document "GLPK: Modeling Language GNU MathProg" was included
1605        in the package.
1606
1607        * doc/refman.latex, doc/refman.dvi, doc/refman.ps
1608        New edition of the GLPK Reference Manual was included in the
1609        package.
1610
1611        * glplpx8c.c
1612        A bug in the api routine lpx_write_lpt was fixed. Due to that
1613        bug an addressing error occured in the routine if the objective
1614        function has the non-zero constant term.
1615
1616        * glplan.h, glplan1.c, glplan2.c, glplan3.c, glplan4.c,
1617        * glplan5.c, glplan6.c, glplan7.c, glplan8.c, glplpx8b.c
1618        All modules of the translator for the GLPK/L modeling language
1619        were removed from the package, because GLPK/L being completely
1620        superseded by GNU MathProg is no more supported.
1621
1622Tue Mar 25 12:00:00 2003 Andrew Makhorin <mao@mai2.rcnet.ru>
1623
1624        * GLPK 3.3 has been released.
1625
1626        * glplpp.h, glplpp1.c, glplpp2.c
1627        An implementation of the built-in LP presolver was added to the
1628        package.
1629
1630        * glplpx.h
1631        The flag presol was added to the structure LPX. This flag tells
1632        the lpx_simplex whether the built-in LP presolver should be used
1633        or not. By default this flag is off. Also three macros (namely
1634        LPX_E_NOPFS, LPX_E_NODFS, and LPX_K_PRESOL) that concern using
1635        the LP presolver were introduced.
1636
1637        * glplpx3.c, glplpx6a.c
1638        These modules was changed to use the built-in LP presolver.
1639
1640        * sample/glpsol.c
1641        Command line options --presol and --nopresol that concern using
1642        the LP presolver were added to the stand-alone LP/MIP solver.
1643
1644        * glplan1.c
1645        This module was changed to allow declaring sets like A[1:10] in
1646        the models written in the GLPK/L modeling language.
1647
1648        * doc/refman.latex, doc/lang.latex
1649        New editions of the documents "GLPK User's Guide" and "GLPK/L
1650        Modeling Language" were included in the distribution.
1651
1652        * java-binding/*.*
1653        The package GLPK JNI (Java Native Interface) implementing Java
1654        binding for GLPK was included in the distribution. This package
1655        was developed and programmed by Yuri Victorovich <yuri@gjt.org>.
1656
1657Tue Feb 18 12:00:00 2003 Andrew Makhorin <mao@mai2.rcnet.ru>
1658
1659        * GLPK 3.2.4 has been released.
1660
1661        * glplpx6b.c
1662        The code was changed to allow auxiliary variables have non-zero
1663        objective coefficients.
1664
1665        Also a minor bug was fixed (the constant term was not considered
1666        on displaying the objective function value).
1667
1668        * sample/glpsol.c
1669        The code was changed to fix a bug (the command-line option 'bfs'
1670        was not recognized). The bug was fixed due to report provided by
1671        Olivier <odwl@skynet.be>.
1672
1673        * glplpt.c
1674        The code was changed to fix a bug (binary variables were treated
1675        erroneously as integer ones).
1676
1677        * glplpx6b.c
1678        The code was changed to fix a bug (variables that have no lower
1679        bounds were incorrectly processed on converting to the standard
1680        formulation). The bug was fixed due to report kindly provided by
1681        Kjell Eikland <kjell.eikland@broadpark.no>.
1682
1683Mon Nov 11 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
1684
1685        * GLPK 3.2.3 has been released.
1686
1687        * glpmip.h, glpmip1.c
1688        A preliminary implementation of the branch-and-bound driver
1689        based on the implicit enumeration suite (glpies) was added to
1690        the package. This module is not documented yet.
1691
1692        * glplpx6c.c
1693        A new implementation of the api routine lpx_integer which now
1694        is based on the b&b driver (see glpmip above) was included in
1695        the package. This new implementation has exactly the same
1696        functionality as the old version and therefore all changes are
1697        transparent to the api user.
1698
1699        * glpbbm.h, glpbbm.c
1700        * glprsm.h, glprsm1.c, glprsm2.c
1701        * glplp.h, glplp.c
1702        These modules were removed from the package, because they were
1703        used only in the old version of the routine lpx_integer, which
1704        was replaced by the new version (see glplpx6c above).
1705
1706        * glplpx.h, glplpx6a.c
1707        The api routine lpx_check_kkt was included in the package and
1708        its description was added in the reference manual. This routine
1709        allows checking Karush-Kuhn-Tucker optimality conditions for an
1710        LP solution.
1711
1712        * glplpx.h, glplpx8a.c
1713        Now the api routine lpx_print_sol also prints information about
1714        "solution quality" obtained via the api routine lpx_check_kkt.
1715
1716        * glplpx.h, glplpx8a.c
1717        New api routines lpx_read_bas and lpx_write_bas were included
1718        in the package and documented. The routine lpx_write_bas allows
1719        writing a current basis from an LP object to a text file in the
1720        MPS format. The routine lpx_read_bas allows reading a basis
1721        prepared in the MPS format from a text file into an LP object.
1722
1723        * glplpt.c
1724        The parsing routine which reads LP problem data prepared in the
1725        CPLEX LP format was modified to allow specifying lower bounds
1726        of variables also in the form 'variable >= lower bound' (in the
1727        bounds section). This modification was made due to a notice
1728        provided by Ivan Luzzi <iluzzi@libero.it>.
1729
1730        * glplpx.h, glplpx8c.c
1731        The api routine lpx_write_lpt which allows writing LP problem
1732        data from an LP object to a text file using the CPLEX LP format
1733        was included in the package and documented.
1734
1735        * glplpx.h, glplpx3.c
1736        The control parameter LPX_K_LPTORIG that affects the behavior
1737        of the api routine lpx_write_lpt was introduced.
1738
1739        * glplan6.c
1740        The semantics of the language GLPK/L was changed to allow
1741        selection in case when not all mute letters of a predicate (the
1742        operand that follows the keyword 'where') are presented in a
1743        parameter (the operand that precedes the keyword 'where'), i.e.
1744        to allow writing something like this:
1745            y[j] := sum(i, x[i] where p[i,j]);
1746        The paragraph "Selection" in the langauge description (page 25)
1747        was also correspondingly changed. This change of the language
1748        semantics was undertaken due to a notice provided by Peter Lee
1749        <plee@kinggee.com.au>.
1750
1751        * sample/hwd.lpm
1752        A nice example of LP model written in GLPK/L and contributed by
1753        Peter Lee <plee@kinggee.com.au> was included in the package.
1754
1755        * glplpx6b.c
1756        The api routine lpx_interior was modified: a) to compute dual
1757        values for all structural as well as auxiliary variables; b) to
1758        allow specifying non-zero objective coefficients at auxiliary
1759        variables.
1760
1761        * sample/glpsol.c
1762        Three new command-line options were added to the solver, which
1763        are: --plain, --orig, and --wrlpt.
1764
1765Mon Oct 14 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
1766
1767        * GLPK 3.2.2 has been released.
1768
1769        * glplpt.h, glplpt.c
1770        A module that reads LP/MIP problem data in CPLEX LP format was
1771        implemented.
1772
1773        * glplpx8c.c
1774        An api routine lpx_read_lpt that reads LP/MIP problem data in
1775        CPLEX LP format was implemented.
1776
1777        * sample/glpsol.c, sample/plan.lpt
1778        A new command-line option '--lpt' that allows reading LP/MIP
1779        problem data in CPLEX LP format was added to the solver.
1780
1781        * doc/refman.latex, doc/refman.dvi, doc/refman.ps
1782        A new edition of the Reference Manual was included.
1783
1784        * source/*.c
1785        Casting to (unsigned char) was added in some calls to the
1786        classification functions (isalpha, etc.). The bug was fixed due
1787        to report provided by Morten Welinder <terra@diku.dk>.
1788
1789        * glplpx8a.c
1790        The local routine mps_numb used in the routine lpx_write_mps
1791        was modified to correctly format floating-point numbers that
1792        have two digits in the decimal exponent. The bug was fixed due
1793        to report provided by Vlahos Kiriakos <Kiriakos.Vlahos@gs.com>.
1794
1795        * glplan.h, glplan1.c, ..., glplan8.c
1796        Several serious bugs were fixed in the language processor due
1797        to reports provided by <NORBERT.PIOTROWSKI@LHSYSTEMS.COM>:
1798        (a) a static search tree used to find sparse array elements was
1799        sometimes overwritten that caused the message 'assertion failed'
1800        to appear; the bug was fixed by creating separate search trees
1801        in parsing routines; (b) a variable declared using the
1802        predicate-controlled variable declaration statement had wrong
1803        order of domain sets, because the variable array was built as
1804        a copy of the predicate array; the bug was fixed by using the
1805        internal routine transpose that coordinates mute letters (and
1806        therefore domain sets) on copying sparse arrays; (c) sometimes
1807        assignment statements like x[#a,#b,#c] := ... was incorrectly
1808        processed; the bug was fixed by including an appropriate check
1809        into the internal routine assign_stmt.
1810
1811        * glp_simplex.c
1812        An additional check to see if all lower bounds are not greater
1813        than corresponding upper bounds was included in the routine to
1814        prevent wrong results to appear. Such incorrectness sometimes
1815        was not detected, namely, when variables with such bounds were
1816        non-basic and never entered the basis.
1817
1818        * glpspx1.c
1819        Maximal number of simplex iterations before reinversion was
1820        decreased from 100 to 50. This allowed to improve accuracy and,
1821        that is more important, to reduce the solution time for many
1822        serial lp problems approximately 1.5--2 times.
1823
1824        * glpspx2.c
1825        A check to see if all elements in the column chosen to enter
1826        the basis are close to zero in the routine spx_prim_chuzr was
1827        temporarily removed because this check gave wrong conclusion in
1828        case when the corresponding non-basic variable had zero column
1829        in the constraint matrix. An analogous check to see if all
1830        elements in the row chosen to leave the basis are close to zero
1831        in the routine spx_dual_chuzc was also temporarily removed on
1832        the same reason. The bug was fixed due to reports provided by
1833        Flavio Keidi Miyazawa <fkm@ic.unicamp.br> and Vlahos Kiriakos
1834        <Kiriakos.Vlahos@gs.com>.
1835
1836Mon Aug 12 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
1837
1838        * GLPK 3.2.1 has been released.
1839
1840        * glpbcs.h, glpbcs1.c, glpbcs2.c
1841        * glpies.h, glpies1.c, glpies2.c, glpies3.c
1842        A preliminary implementation of the branch-and-cut framework
1843        was included in the package.
1844
1845        * doc/brcut.txt
1846        The document "GLPK: A Preliminary Implementation of the
1847        Branch-And-Cut Framework" was included in the distribution.
1848
1849        * sample/tspsol.c
1850        An illustrative program for solving symmetric TSP based on the
1851        branch-and-cut method was included in the package.
1852
1853        * glpdmp.h, glpdmp.c
1854        A new, re-enterable version of routines for managing dynamic
1855        memory pools was included in the package.
1856
1857        * glpavl.h, glpavl.c
1858        A new, re-enterable version of routines for managing AVL search
1859        trees was included in the package.
1860
1861        * glplib.h, glplib2.c
1862        Two new low-level routines ufopen and ufclose were included in
1863        the package.
1864
1865        * glplpx.h, glplpx7.c
1866        The following new api routines were added: lpx_eval_activity,
1867        lpx_eval_red_cost, lpx_reduce_form, lpx_mixed_gomory.
1868
1869        * glptsp.h, glptsp.c
1870        A module for reading TSP data using TSPLIB format was included
1871        in the package.
1872
1873Mon Jul 15 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
1874
1875        * GLPK 3.2 has been released.
1876
1877        * glplpx.h, glplpx1.c, glplpx2.c
1878        The identifier 'class' (used as a member name in the structure
1879        LPX and as an argument name in the routine lpx_set_class) was
1880        changed to 'clss' in order to avoid conflicts with C++ reserved
1881        words.
1882
1883        * glpk.h, glplpx.h, glplpx1.c, glplpx2.c, glplpx6a.c,
1884        * glplpx6b.c, glplpx6c.c, glplpx7.c, glplpx8.c
1885        The following new api routines were added: lpx_set_obj_name,
1886        lpx_get_obj_name, lpx_get_row_mark, lpx_get_col_mark,
1887        lpx_transform_row, lpx_transform_col, lpx_prim_ratio_test,
1888        lpx_dual_ratio_test, lpx_interior, lpx_get_ips_stat,
1889        lpx_get_ips_row, lpx_get_ips_col, lpx_get_ips_obj, lpx_read_lpm,
1890        lpx_write_mps, lpx_print_ips.
1891
1892        * glpsol.c
1893        The solver was completely re-programmed using new api routines.
1894
1895        * lang.latex, lang.dvi, lang.ps
1896        New edition of the document "GLPK: Modeling Language GLPK/L"
1897        was included in the distribution.
1898
1899        * refman.latex, refman.dvi, refman.ps
1900        New edition of the document "GLPK: Reference Manual" (which
1901        contains descriptions of all new api routines) was included in
1902        the distribution.
1903
1904        * glpapi.h, glpapi1.c, glpapi2.c, glpapi3.c, glpapi4.c
1905        These files (which contain old api routines) were removed from
1906        the package.
1907
1908        * glpipm1.c, glpipm2.c
1909        The file glpipm1.c was renamed to glpipm.c. The file glpipm2.c
1910        was used only by old api routines and therefore was removed from
1911        the package.
1912
1913        * language.texinfo
1914        Old version of the document "GLPK: Modeling Language GLPK/L" was
1915        removed from the distribution.
1916
1917Mon May 27 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
1918
1919        * GLPK 3.1 has been released.
1920
1921        * glplpx.h, glplpx1.c, glplpx2.c, glplpx3.c, glplpx4.c,
1922        * glplpx5.c, glplpx6.c, glplpx7.c, glplpx8.c
1923        A preliminary implementation of new API routines was completed.
1924
1925        * refman.latex, refman.dvi, refman.ps
1926        A draft edition of the document "GLPK Reference Manual", which
1927        describes new API routines, was included.
1928
1929        * glplib3.c
1930        A bug in measuring long time intervals was fixed up.
1931
1932        * glprsm3.c
1933        This module contains some obsolete routines not longer used and
1934        therefore it was removed from the package (into the subdirectory
1935        'oldsrc').
1936
1937        * glprsm.h
1938        Some declarations related to the module 'glprsm3.c' (see above)
1939        were removed.
1940
1941        * guide.texinfo
1942        The document "GLPK User's Guide" describing old API routines was
1943        removed from the package (into the subdirectory 'oldsrc').
1944
1945        * newapi.txt
1946        The document "New GLPK API Routines" was removed at all, because
1947        it is superseded by the new reference manual (see above).
1948
1949Mon May 13 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
1950
1951        * GLPK 3.0.8 has been released.
1952
1953        * glplpx.h, glplpx1.c, glplpx2.c, glplpx3.c, glplpx4.c,
1954        * glplpx5.c, glplpx6.c, glplpx7.c
1955        A preliminary (currently incomplete) implementation of new api
1956        routines was included.
1957
1958        * sample/newsamp.c
1959        A sample program for the new api routines was included.
1960
1961        * newapi.txt
1962        A draft of the document "New GLPK API Routines" was included.
1963
1964        * glpapi2.c, glpapi5.c, glpapi6.c
1965        These modules (which contain the api routines glp_call_rsm1,
1966        glp_simplex1, glp_pivot_in, glp_pivot_out) were removed from the
1967        package (to the subdirectory 'oldsrc') since these routines are
1968        functionally superseded by the new api routines.
1969
1970        * glpk.h, glpapi2.c, glpapi3.c, glpapi4.c
1971        The api routines glp_simplex2, glp_call_ipm1, glp_call_bbm1 were
1972        renamed to glp_simplex, glp_interior, glp_integer, respectively.
1973
1974        * sample/glpsol.c
1975        Some command-line options (which got obsolete due to the recent
1976        changes in api) were excluded.
1977
1978        * doc/guide.texinfo
1979        New edition of the document "GLPK User's Guide" was included in
1980        the distribution to reflect the changes in some api routines.
1981
1982        * doc/libref.texinfo
1983        This document was removed from the package (to the subdirectory
1984        'oldsrc') since it describes the library routines, most of which
1985        got obsolete and no longer used.
1986
1987        * Makefile.in
1988        A minor bug was fixed up due to bug report from Hans Schwengeler
1989        <Hans.Schwengeler@unibas.ch>.
1990
1991Mon Apr 22 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
1992
1993        * GLPK 3.0.7 has been released.
1994
1995        * glpduff.h, glpduff.c, glpspx.h, glpspx1.c, glpspx2.c,
1996        * glpapi7.c
1997        These modules were replaced by a new implementation of the
1998        simplex method and therefore they were removed from the package
1999        (however they still can be found in the subdirectory 'oldsrc').
2000
2001        * glprsm1.c
2002        The routine crash_aa was replaced by a new implementation and
2003        therefore it was removed from the file 'glprsm1.c'.
2004
2005        * glplpx.h, glplpx.c, glpspx.h, glpspx1.c, glpspx2.c, glpspx3.c,
2006        * glpspx4.c, glpapi7.c
2007        New (currently incomplete) implementation of the simplex method
2008        components was included in the package.
2009
2010Thu Mar 28 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
2011
2012        * GLPK 3.0.6 has been released.
2013
2014        * glpluf.h, glpluf.c, glpinv.h, glpinv.c
2015        New version of LU-factorization and basis maintenance routines
2016        (based on Forrest-Tomlin updating technique) was implemented.
2017
2018        * glpeta.h, glpeta.c, glpfhv.h, glpfhv.c, glpgel.h, glpgel.c,
2019        * glppfi.h, glppfi.c, glprfi.h, glprfi.c
2020        These routines implement some other forms of the basis matrix.
2021        Now they became obsolete being functionally superseded by the
2022        new version of basis maintenance routines (see above) and were
2023        removed from the package (however they still can be found in the
2024        subdirectory 'oldsrc').
2025
2026        * glpbbm.c, glprsm.h, glprsm1.h, glprsm2.h, glpspx.h, glpspx2.c,
2027        * glprsm2.c, glpsol.c
2028        Necessary changes were made in order to use the new version of
2029        basis maintenance routines.
2030
2031Tue Jan 29 12:00:00 2002 Andrew Makhorin <mao@mai2.rcnet.ru>
2032
2033        * GLPK 3.0.5 has been released.
2034        Structure of the package was re-organized in order to simplify
2035        its maintenance.
2036
2037        * doc/guide.texinfo
2038        New edition of the document "GLPK User's Guide" was included in
2039        the distribution. Now the document includes descriptions of some
2040        additional API routines recently added to the package.
2041
2042        * doc/newapi.txt
2043        The document "Additional GLPK API Routines" was removed from the
2044        distribution, because the corresponding material was included in
2045        the user's guide (see above).
2046
2047Mon Dec 10 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2048
2049        * GLPK 3.0.4 has been released.
2050
2051        * glpspx.h, glpspx1.c, glpspx2.c, glpapi/glp_simplex2.h
2052        A new, more efficient version of the two-phase primal simplex
2053        method was implemented (advanced initial basis, projected
2054        steepest edge, recursive computations of solution components).
2055
2056        * glpapi/glp_call_bbm1.c
2057        Now LP relaxation can be solved either using rsm1_driver(), or
2058        using glp_simplex2(). The choice is controlled by the parameter
2059        'meth' (a member of struct bbm1).
2060
2061        * sample/glpsol.c
2062        The new implementation of the simplex method is now used by
2063        default. The old version is available via --old-sim option.
2064
2065        * glpmat/gm_scaling.c
2066        Now this routine displays only two lines: an initial "quality"
2067        and a final "quality".
2068
2069        * glplp/prepro_lp.c
2070        Identifiers 'fmin' and 'fmax' renamed to 'f_min' and 'f_max' in
2071        order to avoid conflict with <math.h>. The bug was fixed due to
2072        report provided by Sami Farin <sfarin@ratol.fi>.
2073
2074Wed Oct 03 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2075
2076        * GLPK 3.0.3 has been released.
2077
2078        * glprsm/harris_row.c, glprsm/harris_col.c
2079        The relative tolerance used on the first pass of the two-pass
2080        ratio test was replaced by the absolute tolerance.
2081
2082        * glprsm/rsm_primal.c, glprsm/rsm_feas.c, glprsm/rsm_dual.c
2083        The absolute tolerance passed to the two-pass ratio test routine
2084        was decaresed (for both primal and dual simplex).
2085
2086        These changes were made in order to improve numerical stability
2087        of the simplex method.
2088
2089        * glprsm/glp_call_rsm1.c, glprsm/glp_call_bbm1.c,
2090        * glprsm/glp_simplex1, glprsm/glp_pivoting.c
2091        Default form of the inverse was changed from RFI to AFI.
2092
2093Mon Sep 24 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2094
2095        * GLPK 3.0.2 has been released.
2096
2097        * glpfhv.h, glpfhv.c
2098        New version of the basis maintaining routines was implemented.
2099        These routines, which are based on so called FHV-factorization
2100        (a variety of LU-factorization) and Gustavson's data structures,
2101        perform the main operations on the basis matrix faster at the
2102        expense of some worsening numerical accuracy.
2103
2104        * glprsm.h, glprsm/afi.c
2105        The routines, which implement AFI (Advanced Form of the
2106        Inverse) based on FHV-factorization, were added to the package.
2107        This new form is available via the parameter form = 3 (on API
2108        level) or via the option --afi (in GLPSOL solver).
2109
2110        * EFI was renamed to PFI
2111        In order to correct terminology the acronym EFI (Elimination
2112        Form of the Inverse) was replaced by PFI (Product Form of the
2113        Inverse) everywhere in the source code and the documentation.
2114
2115        * glpset/umalloc.c, glpset/ucalloc.c
2116        * glpset/get_atom.c, glpset/get_atomv.c
2117        These memory management routines were changed in order *not* to
2118        clear allocated memory blocks by binary zeros.
2119
2120Wed Aug 01 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2121
2122        * GLPK 3.0.1 has been released.
2123
2124        * glpapi/old_api.c, glplp/extract_lp.c, store_lpsol.c
2125        Old API routines were deleted from the package.
2126
2127        * include/glpk.h, include/glpapi.h, include/glplp.h
2128        Specifications of old API routines and data structures were
2129        removed from the headers.
2130
2131        * sample/glpsol.c
2132        New version of the stand-alone solver GLPSOL that now uses new
2133        API routines was implemented.
2134
2135        * glpapi/glp_set_row_fctr.c, glpapi/glp_set_col_fctr.c,
2136        * glpapi/glp_get_row_fctr.c, glpapi/glp_get_col_fctr.c,
2137        * glpapi/glp_scale_prob.c
2138        Scaling routines were added.
2139
2140        * glpapi/glp_write_mps.c
2141        The routine for writing problem data in MPS format was added.
2142
2143        * glpapi/glp_simplex1.c
2144        Comprehensive driver to the simplex method was added.
2145
2146        * glpapi/glp_pivoting.c
2147        The routines glp_pivot_in() and glp_pivot_out() intended for
2148        basis maintaining were added.
2149
2150        * glprsm/create_rsm.c, glprsm/delete_rsm.c, glprsm/scale_rsm.c,
2151        * glprsm/build_basis.c
2152        Additional low level routines related to the simplex method
2153        were added.
2154
2155        * glpk.h, glpapi.h, glprsm.h
2156        Additional specifications for new routines and data structures
2157        were added.
2158
2159        * sample/lpglpk30.c
2160        A non-trivial example was added. It allows using GLPK as a base
2161        LP solver for Concorde, a program for solving Traveling Salesman
2162        Problem (TSP). For details see comments in 'lpglpk30.c'.
2163
2164        * doc/newapi.txt
2165        The document "Additional GLPK API Routines" that describes some
2166        new API routines was included.
2167
2168Thu Jul 19 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2169
2170        * GLPK 3.0 has been released.
2171
2172        Now GLPK is provided with new API, which is intended for using
2173        the package in more complex algorithmic schemes.
2174
2175        * glpapi/old_api.c
2176        All routines related to old API were gathered in one file named
2177        'old_api.c'.
2178
2179        * glpapi/*.c
2180        These routines that implement new API were added to the package.
2181
2182        * include/glpk.h, include/glpapi.h
2183        Specifications of new API routines and data structures were
2184        added to these headers. Specifications of old API routines and
2185        data structures were locked by #ifdef GLP_OLD_API directive.
2186
2187        * doc/guide.texinfo
2188        New edition of the document "GLPK User's Guide" that correspond
2189        to new API was included.
2190
2191Thu Jun 14 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2192
2193        * GLPK 2.4.1 has been released.
2194
2195        * doc/glpk_ml.texinfo
2196        The new document "Modeling Language GLPK/L" was included.
2197
2198        * doc/glpk_ug.texinfo
2199        New edition of the document "GLPK User's Guide" was included.
2200
2201        * doc/language.txt
2202        The preliminary document "GLPK/L Modeling Language: A Brief
2203        description" was removed from the distribution, because it has
2204        been replaced by the new document "Modeling Language GLPK/L".
2205
2206        * glplang/l_spar.c
2207        The routine comparison() was re-programmed in order to
2208        implement the relation operation as specified in the language
2209        description.
2210
2211        * glpmip.h, glpmip/*.c
2212        The partition 'glpmip' was renamed to 'glpbbm'.
2213
2214Thu May 10 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2215
2216        * GLPK 2.4 has been released.
2217
2218        Now GLPK includes an implementation of a preliminary version of
2219        the GLPK/L modeling language.
2220
2221        * glplang.h, glplang/*.c
2222        The header 'glplang.h' and a set of routines that implements
2223        the GLPK/L language processor (the partition 'glplang') were
2224        added to the package.
2225
2226        * doc/language.txt
2227        The document "GLPK/L Modeling Language: A Brief Description
2228        (Supplement to GLPK User's Guide)" in plain text format was
2229        included in the package (see the file 'language.txt' in the
2230        subdirectory 'doc' of the distribution).
2231
2232        * ex/model1.lpm, ex/model2.lpm
2233        Two examples of model descriptions written in GLPK/L were added
2234        to the package.
2235
2236        * sample/glpsol.c
2237        This program was modified in order: a) to allow processing
2238        model description written in GLPK/L; b) to allow solving pure
2239        LP problem using the interior point method.
2240
2241        * sample/glpipm.c
2242        This program was removed from the package, because its function
2243        was passed to the GLPSOL solver.
2244
2245        * Makefile.in
2246        This file was changed in order to install the GLPSOL solver
2247        executable.
2248
2249Mon Apr 09 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2250
2251        * GLPK 2.3 has been released.
2252
2253        * glpmip.h, glpmip/*.c
2254        These routines (that implement the branch-and-bound method) were
2255        re-programmed in order to improve robustness of implementation.
2256        In particular, heuristic routines were carried out from the main
2257        driver routine.
2258
2259        Additional GLPK API routines were documented.
2260
2261        New edition of the document "GLPK User's Guide" was included in
2262        the package.
2263
2264        The preliminary document "Mixed Integer Programming Using GLPK
2265        Version 2.2 (Supplement to GLPK User's Guide)" was removed from
2266        the package, because this material was included in GLPK User's
2267        Guide.
2268
2269Thu Mar 15 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2270
2271        * GLPK 2.2 has been released.
2272
2273        Now GLPK includes a tentative implementation of the
2274        branch-and-bound procedure based on the dual simplex method for
2275        mixed integer linear programming (MIP).
2276
2277        The preliminary document "Mixed Integer Programming Using GLPK
2278        Version 2.2 (Supplement to GLPK User's Guide)" was included into
2279        the package in plain text format (see the file 'mip.txt' in the
2280        subdirectory 'doc' of the distribution).
2281
2282        * glpmip.h, glpmip/*.c, glpapi/glp_integer.c
2283        These routines (that implement the branch-and-bound method) were
2284        added to the package.
2285
2286        * sample/glpsol.c
2287        This program was modified in order to allow solving LP and MIP
2288        problems.
2289
2290        * glprsm/rsm_primal.c, glprsm/rsm_dual.c, glprsm/rsm_feas.c,
2291        * glprsm/rsm1_driver.c
2292        These routines (which are drivers to basic components of the
2293        revised simplex method) were added to the package.
2294
2295Mon Feb 19 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2296
2297        * GLPK 2.1 has been released.
2298
2299        * glprsm.h, glprsm/*.c
2300        These routines (that implement components of the revised simplex
2301        method) were re-programmed and documented.
2302
2303        The document "GLPK Implementation of the Revised Simplex Method"
2304        was included into the package.
2305
2306Thu Jan 25 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2307
2308        * GLPK 2.0 has been released.
2309
2310        Now GLPK includes a tentative implementation of the primal-dual
2311        interior point method for large-scale linear programming (for
2312        more details see the file `NEWS' in the distribution). A number
2313        of routines related to the interior point method were added to
2314        the package.
2315
2316        * insist.c
2317        The routine `insist' and the macro of the same name were
2318        introduced into the package in order to replace the standard
2319        macro `assert'. Some routines require the expression specified
2320        in the `assert' macro to be evaluated, but compiling the package
2321        with NDEBUG option prevents from that. This bug was fixed due to
2322        bug report provided by Peter A. Huegler <phuegler@bsco.com>.
2323
2324        * Makefile.in
2325        Minor bug was fixed due to a patch provided by Alexandre Oliva
2326        <oliva@lsd.ic.unicamp.br>.
2327
2328Wed Jan 10 12:00:00 2001 Andrew Makhorin <mao@mai2.rcnet.ru>
2329
2330        * GLPK 1.1.2 has been released.
2331
2332        * umalloc.c, ufree.c, create_pool.c, get_atom.c, get_atomv.c
2333        These routines were changed in order to fix a bug due to
2334        report provided by Andrew Hood <ajhood@fl.net.au>. Because of
2335        this bug data alignment error occured on the Sparc computer.
2336
2337Tue Dec 14 12:00:00 2000 Andrew Makhorin <mao@mai2.rcnet.ru>
2338
2339        * GLPK 1.1.1 has been released.
2340
2341        Minor bug was fixed in `Makefile.in'.
2342
2343        GLPK Library Reference was included.
2344
2345Mon Nov 27 12:00:00 2000 Andrew Makhorin <mao@mai2.rcnet.ru>
2346
2347        * GLPK 1.1 has been released.
2348
2349        Minor changes were made in order to co-ordinate GLPK routines
2350        and their descriptions.
2351
2352        GLPK User's Guide was included.
2353
2354Fri Oct 20 12:00:00 2000 Andrew Makhorin <mao@mai2.rcnet.ru>
2355
2356        * GLPK 1.0 has been released.
Note: See TracBrowser for help on using the repository browser.