Akos Ladanyi <ladanyi@tmit.bme.hu> [Tue, 26 May 2009 17:49:10 +0100] rev 675
Rename documentation install folder from 'docs' to 'html'
Akos Ladanyi <ladanyi@tmit.bme.hu> [Tue, 26 May 2009 17:47:51 +0100] rev 674
Remove duplications from doc/CMakeLists.txt
Alpar Juttner <alpar@cs.elte.hu> [Thu, 28 May 2009 16:59:51 +0100] rev 673
Merge fix #295
Akos Ladanyi <ladanyi@tmit.bme.hu> [Thu, 28 May 2009 12:11:50 +0100] rev 672
Suppress MSVC warnings using pragmas (#295)
Alpar Juttner <alpar@cs.elte.hu> [Wed, 13 May 2009 09:58:09 +0100] rev 671
LEMON 1.1 released (06f816565bef tagged as r1.1)
Alpar Juttner <alpar@cs.elte.hu> [Wed, 13 May 2009 09:50:14 +0100] rev 670
Merge various fixes
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 13 May 2009 10:42:26 +0200] rev 669
Add artificial addNode() function to the arc/edge set classes
Peter Kovacs <kpeter@inf.elte.hu> [Tue, 12 May 2009 20:08:23 +0200] rev 668
Avoid Intel C++ Compiler warnings
Peter Kovacs <kpeter@inf.elte.hu> [Tue, 12 May 2009 17:57:49 +0200] rev 667
Disable Visual Studio warning C4503
Alpar Juttner <alpar@cs.elte.hu> [Tue, 12 May 2009 15:55:00 +0100] rev 666
Add lemon/config.h.cmake to the tarball
Alpar Juttner <alpar@cs.elte.hu> [Tue, 12 May 2009 15:02:18 +0100] rev 665
Resolve GCC-4.4 warnings & fix ambiguous op=() in graph_components.h
Alpar Juttner <alpar@cs.elte.hu> [Tue, 12 May 2009 12:09:55 +0100] rev 664
Merge
Alpar Juttner <alpar@cs.elte.hu> [Tue, 12 May 2009 11:49:13 +0100] rev 663
Update NEWS file
Peter Kovacs <kpeter@inf.elte.hu> [Tue, 12 May 2009 12:08:06 +0200] rev 662
Extend min cost flow test file + check dual costs (#291)
Peter Kovacs <kpeter@inf.elte.hu> [Tue, 12 May 2009 12:06:40 +0200] rev 661
Fix the GEQ/LEQ handling in NetworkSimplex + improve doc (#291)
- Fix the optimality conditions for the GEQ/LEQ form.
- Fix the initialization of the algortihm. It ensures correct
solutions and it is much faster for the inequality forms.
- Fix the pivot rules to search all the arcs that have to be
allowed to get in the basis.
- Better block size for the Block Search pivot rule.
- Improve documentation of the problem and move it to a
separate page.
Alpar Juttner <alpar@cs.elte.hu> [Mon, 11 May 2009 16:38:21 +0100] rev 660
Merge
Peter Kovacs <kpeter@inf.elte.hu> [Sat, 09 May 2009 16:47:26 +0200] rev 659
Remove bits/base_extender.h, which is not used at all (#288)
Peter Kovacs <kpeter@inf.elte.hu> [Mon, 11 May 2009 17:04:40 +0200] rev 658
Move list and edge sets to the graph module (#290)
Alpar Juttner <alpar@cs.elte.hu> [Mon, 11 May 2009 15:48:37 +0100] rev 657
Merge
Peter Kovacs <kpeter@inf.elte.hu> [Mon, 11 May 2009 16:42:42 +0200] rev 656
Change the explanation of the acronym LEMON (#289)
Peter Kovacs <kpeter@inf.elte.hu> [Sat, 09 May 2009 16:39:59 +0200] rev 655
Change Graph::Edge -> Graph::Arc inheritance to conversion (#283)
Balazs Dezso <deba@inf.elte.hu> [Thu, 07 May 2009 10:46:49 +0200] rev 654
Change Undirector::Edge -> Undirector::Arc inheritance to conversion (#283)
Alpar Juttner <alpar@cs.elte.hu> [Fri, 08 May 2009 16:21:06 +0100] rev 653
Fix the faulty merge of unify-sources.sh in [586b65073025]
Peter Kovacs <kpeter@inf.elte.hu> [Fri, 08 May 2009 13:15:29 +0200] rev 652
Doc fixes for lgf-gen (#282)
Alpar Juttner <alpar@cs.elte.hu> [Thu, 07 May 2009 12:21:00 +0100] rev 651
Merge
Alpar Juttner <alpar@cs.elte.hu> [Thu, 07 May 2009 12:19:41 +0100] rev 650
Merge
Peter Kovacs <kpeter@inf.elte.hu> [Thu, 07 May 2009 02:07:59 +0200] rev 649
Small doc improvements (#257)
Balazs Dezso <deba@inf.elte.hu> [Thu, 07 May 2009 11:53:49 +0200] rev 648
Fix glp_prob definition (#286)
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 06 May 2009 14:46:05 +0200] rev 647
Add a test file for the connectivity functions (#285)
The Euler tools have a separate test file.
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 06 May 2009 14:44:05 +0200] rev 646
Doc improvements and fixes for connectivity tools (#285)
And add loopFree(), parallelFree(), simpleGraph() to the module doc.
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 06 May 2009 14:37:44 +0200] rev 645
Bug fixes in connectivity.h (#285)
- Bug fix in tree().
- Rename simpleDigraph() to simpleGraph() (it works for both
directed and undirected graphs).
- Possibly faster implementation for parallelFree() and
simpleGraph().
Peter Kovacs <kpeter@inf.elte.hu> [Thu, 07 May 2009 02:05:12 +0200] rev 644
Remove references of missing tools (#257)
Alpar Juttner <alpar@cs.elte.hu> [Thu, 30 Apr 2009 11:48:04 +0100] rev 643
Release branch 1.1 created
Alpar Juttner <alpar@cs.elte.hu> [Wed, 29 Apr 2009 19:22:14 +0100] rev 642
Merge
Akos Ladanyi <ladanyi@tmit.bme.hu> [Wed, 29 Apr 2009 16:15:29 +0100] rev 641
Add the solver libraries to lemon.pc.in (#281)
Alpar Juttner <alpar@cs.elte.hu> [Wed, 29 Apr 2009 17:48:41 +0100] rev 640
Merge
Alpar Juttner <alpar@cs.elte.hu> [Wed, 29 Apr 2009 17:48:18 +0100] rev 639
Resolve gcc-4.3 warning in lemon/network_simplex.h
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 29 Apr 2009 16:54:27 +0200] rev 638
Less map copying in NetworkSimplex (#234)
- The graph is copied in the constructor instead of the init() function.
It must not be modified after the class is constructed.
- The maps are copied once (instead of twice).
- Remove FlowMap, PotentialMap typedefs and flowMap(), pontentialMap()
setter functions.
- flowMap() and potentialMap() query functions copy the values into the
given map (reference) instead of returning a const reference to a
previously constructed map.
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 29 Apr 2009 14:25:51 +0200] rev 637
Rename Flow to Value in the flow algorithms (#266)
We agreed that using Flow for the value type is misleading, since
a flow should be rather a function on the arcs, not a single value.
This patch reverts the changes of [dacc2cee2b4c] for Preflow and
Circulation.
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 29 Apr 2009 03:15:24 +0200] rev 636
Support negative costs and bounds in NetworkSimplex (#270)
* The interface is reworked to support negative costs and bounds.
- ProblemType and problemType() are renamed to
SupplyType and supplyType(), see also #234.
- ProblemType type is introduced similarly to the LP interface.
- 'bool run()' is replaced by 'ProblemType run()' to handle
unbounded problem instances, as well.
- Add INF public member constant similarly to the LP interface.
* Remove capacityMap() and boundMaps(), see also #266.
* Update the problem definition in the MCF module.
* Remove the usage of Circulation (and adaptors) for checking feasibility.
Check feasibility by examining the artifical arcs instead (after solving
the problem).
* Additional check for unbounded negative cycles found during the
algorithm (it is possible now, since negative costs are allowed).
* Fix in the constructor (the value types needn't be integer any more),
see also #254.
* Improve and extend the doc.
* Rework the test file and add test cases for negative costs and bounds.
Alpar Juttner <alpar@cs.elte.hu> [Wed, 29 Apr 2009 16:55:27 +0100] rev 635
Merge
Akos Ladanyi <ladanyi@tmit.bme.hu> [Tue, 28 Apr 2009 18:45:29 +0100] rev 634
Do not distribute lemon/config.h and fix its bad include by core.h (#280)
Akos Ladanyi <ladanyi@tmit.bme.hu> [Tue, 28 Apr 2009 11:25:47 +0100] rev 633
Check the version number in FindGLPK (#277)
Akos Ladanyi <ladanyi@tmit.bme.hu> [Mon, 27 Apr 2009 18:05:04 +0100] rev 632
Add GLPK_ROOT_DIR variable to FindGLPK (#277)
Akos Ladanyi <ladanyi@tmit.bme.hu> [Tue, 28 Apr 2009 11:55:43 +0100] rev 631
Link libm and libpthread if using CPLEX (#277)
Akos Ladanyi <ladanyi@tmit.bme.hu> [Mon, 27 Apr 2009 18:03:18 +0100] rev 630
Add CPLEX_ROOT_DIR variable to FindCPLEX (#277)
Akos Ladanyi <ladanyi@tmit.bme.hu> [Tue, 28 Apr 2009 14:47:25 +0100] rev 629
Look for COIN libraries with and without the lib prefix too (#277)
This is necessary because on Windows when built using autotools the COIN
libraries are named in UNIX style, i.e. libCbc.lib insetad of Cbc.lib.
Alpar Juttner <alpar@cs.elte.hu> [Wed, 29 Apr 2009 15:54:30 +0100] rev 628
Merge
Alpar Juttner <alpar@cs.elte.hu> [Wed, 29 Apr 2009 15:52:08 +0100] rev 627
Merge
Akos Ladanyi <ladanyi@tmit.bme.hu> [Tue, 28 Apr 2009 16:44:48 +0100] rev 626
Remove superfluous HAVE_CONFIG_H (#278)
Akos Ladanyi <ladanyi@tmit.bme.hu> [Tue, 28 Apr 2009 16:49:57 +0100] rev 625
Add cbc.h to lemon/Makefile.am (#279)
Balazs Dezso <deba@inf.elte.hu> [Tue, 28 Apr 2009 12:54:59 +0200] rev 624
Fix Makefile.am EXTRA_DIST (#276)
Alpar Juttner <alpar@cs.elte.hu> [Tue, 28 Apr 2009 14:01:00 +0100] rev 623
Merge
Akos Ladanyi <ladanyi@tmit.bme.hu> [Tue, 28 Apr 2009 13:51:34 +0100] rev 622
Merge and extend the fix of #275
Akos Ladanyi <ladanyi@tmit.bme.hu> [Mon, 27 Apr 2009 20:02:37 +0100] rev 621
Prefix macro names with LEMON_ in lemon/config.h (#275)
Akos Ladanyi <ladanyi@tmit.bme.hu> [Tue, 28 Apr 2009 13:38:06 +0100] rev 620
Install lemon/config.h (#274)
Alpar Juttner <alpar@cs.elte.hu> [Mon, 27 Apr 2009 11:24:44 +0100] rev 619
unify-sources.sh refresh the dates according to the last modification
Alpar Juttner <alpar@cs.elte.hu> [Sun, 26 Apr 2009 16:36:23 +0100] rev 618
Merge
Peter Kovacs <kpeter@inf.elte.hu> [Sun, 26 Apr 2009 16:44:53 +0200] rev 617
Modify the interface of MinCostArborescence + improvements (#267)
- Rename arborescenceValue() to arborescenceCost().
- Rename DefXyz template named paramaters to SetXyz.
- Rearrange public functions (for better doc).
- Doc improvements.
- Extend the test file with interface checking.
Alpar Juttner <alpar@cs.elte.hu> [Sat, 25 Apr 2009 17:51:09 +0100] rev 616
Merge
Peter Kovacs <kpeter@inf.elte.hu> [Sat, 25 Apr 2009 02:12:41 +0200] rev 615
Modify the interface of Suurballe (#266, #181)
- Move the parameters s and t from the constructor to the run()
function. It makes the interface capable for multiple run(s,t,k)
calls (possible improvement in the future) and it is more similar
to Dijkstra.
- Simliarly init() and findFlow(k) were replaced by init(s) and
findFlow(t,k). The separation of parameters s and t is for the
future plans of supporting multiple targets with one source node.
For more information see #181.
- LEMON_ASSERT for the Length type (check if it is integer).
- Doc improvements.
- Rearrange query functions.
- Extend test file.
Peter Kovacs <kpeter@inf.elte.hu> [Sat, 25 Apr 2009 18:25:59 +0200] rev 614
Support infinite bounds in Circulation + fixes (#270, #266)
- Support infinite capacities.
- Bug fix in upperMap().
- Fixes and improvements in the documentation.
Akos Ladanyi <ladanyi@tmit.bme.hu> [Thu, 23 Apr 2009 07:30:40 +0100] rev 613
FindCOIN for CMake (#256)
Akos Ladanyi <ladanyi@tmit.bme.hu> [Thu, 23 Apr 2009 07:29:50 +0100] rev 612
FindCPLEX for CMake (#256)
Akos Ladanyi <ladanyi@tmit.bme.hu> [Thu, 23 Apr 2009 07:28:56 +0100] rev 611
FindGLPK improvements (#256)
Alpar Juttner <alpar@cs.elte.hu> [Fri, 24 Apr 2009 12:12:14 +0100] rev 610
Merge
Peter Kovacs <kpeter@inf.elte.hu> [Fri, 24 Apr 2009 11:54:48 +0200] rev 609
Fix and uniform the usage of Graph and Parent typedefs (#268)
- Rename Graph typedefs to GraphType in the implementation of graph
maps and MapExtender to prevent conflicts (especially using VS).
They are not public.
- Make Parent typedefs private in all classes.
- Replace Digraph with Graph in some places
(fix faulty renamings of the script).
- Use Graph and Digraph typedefs (more) consequently.
Peter Kovacs <kpeter@inf.elte.hu> [Fri, 24 Apr 2009 10:15:33 +0200] rev 608
VS compatibility fix (#268)
Peter Kovacs <kpeter@inf.elte.hu> [Fri, 24 Apr 2009 12:23:53 +0200] rev 607
Exploit the changes of #190 in MCF test file (#234, #190)
Peter Kovacs <kpeter@inf.elte.hu> [Fri, 24 Apr 2009 12:23:17 +0200] rev 606
Support LEQ and GEQ supply constraints in dimacs-solver (#234, #219)
Peter Kovacs <kpeter@inf.elte.hu> [Fri, 24 Apr 2009 12:22:06 +0200] rev 605
Bug fix in NetworkSimplex (#234)
Alpar Juttner <alpar@cs.elte.hu> [Thu, 23 Apr 2009 10:44:35 +0100] rev 604
Fix usage of sqrt() (#268)
Alpar Juttner <alpar@cs.elte.hu> [Tue, 21 Apr 2009 15:18:54 +0100] rev 603
Merge and fix
Peter Kovacs <kpeter@inf.elte.hu> [Fri, 17 Apr 2009 18:14:35 +0200] rev 602
Slightly modify the interface of Circulation and Preflow (#266)
in order to synchronize them to the interface of NetworkSimplex.
Circulation:
- The "delta" notation is replaced by "supply".
- lowerCapMap(), upperCapMap() are renamed to lowerMap() and upperMap().
- Value is renamed to Flow.
Preflow:
- Value is renamed to Flow.
Peter Kovacs <kpeter@inf.elte.hu> [Fri, 17 Apr 2009 18:04:36 +0200] rev 601
Support >= and <= constraints in NetworkSimplex (#219, #234)
By default the same inequality constraints are supported as by
Circulation (the GEQ form), but the LEQ form can also be selected
using the problemType() function.
The documentation of the min. cost flow module is reworked and
extended with important notes and explanations about the different
variants of the problem and about the dual solution and optimality
conditions.
Peter Kovacs <kpeter@inf.elte.hu> [Fri, 03 Apr 2009 18:59:15 +0200] rev 600
Support real types + numerical stability fix in NS (#254)
- Real types are supported by appropriate inicialization.
- A feature of the XTI spanning tree structure is removed to ensure
numerical stability (could cause problems using integer types).
The node potentials are updated always on the lower subtree,
in order to prevent overflow problems.
The former method isn't notably faster during to our tests.
Peter Kovacs <kpeter@inf.elte.hu> [Fri, 03 Apr 2009 13:46:16 +0200] rev 599
Separate types for flow and cost values in NetworkSimplex (#234)
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 25 Mar 2009 21:37:50 +0100] rev 598
Support multiple run() calls in NetworkSimplex (#234)
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 25 Mar 2009 15:58:44 +0100] rev 597
Rework the interface of NetworkSimplex (#234)
The parameters of the problem can be set with separate functions
instead of different constructors.
Peter Kovacs <kpeter@inf.elte.hu> [Tue, 24 Mar 2009 00:18:25 +0100] rev 596
Use XTI implementation instead of ATI in NetworkSimplex (#234)
XTI (eXtended Threaded Index) is an imporved version of the widely
known ATI (Augmented Threaded Index) method for storing and updating
the spanning tree structure in Network Simplex algorithms.
In the ATI data structure three indices are stored for each node:
predecessor, thread and depth. In the XTI data structure depth is
replaced by the number of successors and the last successor
(according to the thread index).
Peter Kovacs <kpeter@inf.elte.hu> [Mon, 23 Mar 2009 23:54:42 +0100] rev 595
Internal restructuring and renamings in NetworkSimplex (#234)
Peter Kovacs <kpeter@inf.elte.hu> [Tue, 24 Feb 2009 09:52:26 +0100] rev 594
Support min cost flow in dimacs-solver (#234)
Peter Kovacs <kpeter@inf.elte.hu> [Tue, 24 Feb 2009 09:46:02 +0100] rev 593
Port NetworkSimplex from SVN -r3520 (#234)
Alpar Juttner <alpar@cs.elte.hu> [Tue, 21 Apr 2009 13:08:19 +0100] rev 592
Merge
Alpar Juttner <alpar@cs.elte.hu> [Tue, 21 Apr 2009 10:34:49 +0100] rev 591
Merge
Balazs Dezso <deba@inf.elte.hu> [Sat, 18 Apr 2009 21:54:30 +0200] rev 590
Add more docs to LGF function interface (#109)
Balazs Dezso <deba@inf.elte.hu> [Sat, 18 Apr 2009 21:01:12 +0200] rev 589
Fix in HaoOrlin (#264)
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 15 Apr 2009 09:37:51 +0200] rev 588
Improvements and fixes for the minimum cut algorithms (#264)
Alpar Juttner <alpar@cs.elte.hu> [Sat, 18 Apr 2009 08:51:54 +0100] rev 587
Merge
Peter Kovacs <kpeter@inf.elte.hu> [Fri, 17 Apr 2009 09:58:50 +0200] rev 586
Rename max_matching.h to matching.h (#265)
Peter Kovacs <kpeter@inf.elte.hu> [Fri, 17 Apr 2009 09:54:14 +0200] rev 585
Extend and modify the interface of matching algorithms (#265)
- Rename decomposition() to status() in MaxMatching.
- Add a new query function statusMap() to MaxMatching.
- Add a new query function matchingMap() to all the three classes.
- Rename matchingValue() to matchingWeight() in the weighted
matching classes.
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 15 Apr 2009 11:47:19 +0200] rev 584
Improvements for the Euler tools and the test file (#264)
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 15 Apr 2009 11:41:25 +0200] rev 583
Bug fix in the Euler iterators (#264)
Handle the case when the first node is isolated.
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 15 Apr 2009 12:01:14 +0200] rev 582
Imporvements for the matching algorithms (#264)
Alpar Juttner <alpar@cs.elte.hu> [Wed, 15 Apr 2009 07:13:30 +0100] rev 581
Merge
Alpar Juttner <alpar@cs.elte.hu> [Wed, 15 Apr 2009 07:07:25 +0100] rev 580
Merge
Alpar Juttner <alpar@cs.elte.hu> [Wed, 15 Apr 2009 07:05:32 +0100] rev 579
Rotate and enlarge some images (#262)
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 15 Apr 2009 04:26:13 +0200] rev 578
Add images + fixes in the doc of connectivity tools (#262)
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 15 Apr 2009 03:26:45 +0200] rev 577
Improve test files for some algorithms (#263)
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 15 Apr 2009 02:04:37 +0200] rev 576
Small doc improvements (#263)
Alpar Juttner <alpar@cs.elte.hu> [Tue, 14 Apr 2009 10:40:33 +0100] rev 575
Merge
Peter Kovacs <kpeter@inf.elte.hu> [Tue, 14 Apr 2009 10:54:42 +0200] rev 574
Remove notes about reference maps as extra features (#190)
Peter Kovacs <kpeter@inf.elte.hu> [Tue, 14 Apr 2009 10:35:38 +0200] rev 573
Exploit that the standard maps are reference maps (#190)
Peter Kovacs <kpeter@inf.elte.hu> [Tue, 14 Apr 2009 10:34:12 +0200] rev 572
Standard graph maps are required to be reference maps (#190)
Peter Kovacs <kpeter@inf.elte.hu> [Tue, 14 Apr 2009 10:33:17 +0200] rev 571
Various improvements and fixes (mainly in the doc) (#190)
Alpar Juttner <alpar@cs.elte.hu> [Fri, 10 Apr 2009 07:29:22 +0100] rev 570
Merge
Alpar Juttner <alpar@cs.elte.hu> [Fri, 10 Apr 2009 07:29:00 +0100] rev 569
Merge
Balazs Dezso <deba@inf.elte.hu> [Wed, 08 Apr 2009 22:49:28 +0200] rev 568
Unified message handling for LP and MIP solvers (#9)
Balazs Dezso <deba@inf.elte.hu> [Thu, 09 Apr 2009 21:19:16 +0200] rev 567
Force cplex checking (#260)
Peter Kovacs <kpeter@inf.elte.hu> [Wed, 08 Apr 2009 10:42:00 +0200] rev 566
Add RangeIdMap, CrossRefMap to the rename script (#160)
Alpar Juttner <alpar@cs.elte.hu> [Tue, 07 Apr 2009 14:50:20 +0100] rev 565
Merge
Alpar Juttner <alpar@cs.elte.hu> [Sat, 04 Apr 2009 07:30:58 +0100] rev 564
DescriptorMap->RangeIdMap, InvertableMap->CrossRefMap (#160)
Alpar Juttner <alpar@cs.elte.hu> [Tue, 07 Apr 2009 12:56:50 +0100] rev 563
Merge
Akos Ladanyi <ladanyi@tmit.bme.hu> [Mon, 06 Apr 2009 18:51:04 +0100] rev 562
Fix compilation with MSVC (#259)
Akos Ladanyi <ladanyi@tmit.bme.hu> [Mon, 06 Apr 2009 18:51:54 +0100] rev 561
Fix compilation with MSVC (#258)
Akos Ladanyi <ladanyi@tmit.bme.hu> [Fri, 03 Apr 2009 16:58:22 +0100] rev 560
Single check macro for all COIN-OR dependencies (#204)
Balazs Dezso <deba@inf.elte.hu> [Wed, 01 Apr 2009 22:58:58 +0200] rev 559
Add CBC support (#204)
Balazs Dezso <deba@inf.elte.hu> [Thu, 02 Apr 2009 19:29:56 +0200] rev 558
Silent glp_adv_basis() (#255)
Balazs Dezso <deba@inf.elte.hu> [Wed, 01 Apr 2009 22:54:00 +0200] rev 557
Fixing presolver and basis handling (#255)
Akos Ladanyi <ladanyi@tmit.bme.hu> [Wed, 01 Apr 2009 14:18:35 +0100] rev 556
Add 'demo' make target for building the demo programs