The B++ Library is perpetually under development, so new versions occur regularly. Here is an
historical record of the important changes in the library. Some dates are not accurate (we have been
maintaining a precise record since April 2001) but they show the evolution of the library from the
beginning. The most important steps are highlighted in green, or in
orange if they have major impact on the way of (re)using
the library and mean changes for the user.
01/15/1999 |
Start of the project. |
06/01/1999 |
First version of the library under Windows
(with Cygwin and Borland C++ 5.02) and AIX. Only the standard layer and the graph structure. |
09/01/1999 |
Basic algorithms for the minimum cost tension problem
with linear costs. |
11/01/1999 |
- Tools to manage files (Cut File, Dos
Unix, Remove Files and Show Dir).
- Full portability under AIX, Linux and Windows (with Cygwin, Borland C++ 5.02 and C++
Builder 4). |
12/01/1999 |
- First release of the library on the Web.
- Tools for the semi automatic generation of the documentation (Make Doc) and the makefile
of the library (Build Makefile). |
01/15/2000 |
An algorithm for the minimum cost tension problem with
convex costs. |
03/01/2000 |
Basic algorithms to solve classical problems:
connectivity, minimum spanning tree, shortest path, maximum flow... |
05/01/2000 |
- A tool to generate random graphs and problems
(Build Graph).
- Tools to solve these problems (Solve Graph and Solve Tension). |
08/01/2000 |
A tool to build the layout of a graph in the EPS format
(Graph Layout). |
09/01/2000 |
A tool to analyze and extract series of tests on
algorithms that solve graph problems (Analyze Result). |
11/01/2000 |
- Imperceptible changes in many modules that increase
the speed of some algorithms.
- A new section in the documentation that explains how to use the library. |
02/01/2001 |
- A new algorithm for the minimum cost tension problem
with linear costs in serial-parallel graphs.
- Modification of the Graph Layout tool: an algorithm to build the layout of a binary
tree. |
03/01/2001 |
Basic algorithms to generate and solve the minimum cost
flow problem. |
04/04/2001 |
- A cost-scaling algorithm for the minimum cost flow
problem.
- Another basic algorithm for shortest path problems. |
04/27/2001 |
A new algorithm for the minimum cost tension problem
with linear costs based on the cost-scaling algorithm for the minimum cost flow problem. |
05/15/2001 |
- A tool to encrypt files (Encrypt).
- A tool to rename files (Renum Files). |
06/02/2001 |
A new initialization and termination mechanism for the
modules of the library. It makes the DLL version of the library fully operational. Warning: there are major changes in the way of compiling and using the
library. |
06/25/2001 |
- End of the testing with Borland C++ 5.02 and C++
Builder 4. They are replaced by Borland C++ 5.5 freely available
here.
- A new algorithm to find a compatible tension in a graph that must significantly increase the
speed of several algorithms. |
08/29/2001 |
- A new display mechanism: instead of non implemented
functions, there is an abstract class. Warning: there are changes in the way
of initializing the library.
- A module to load a dynamic library at run time.
- A module to use the Java Native Interface (JNI). For the moment it only provides the load of a
Java Virtual Machine. |
11/24/2001 |
- Encapsulation of the library in a namespace and a
folder, add of a prefix to the library names. This should avoid the clash of names. Warning: there are minor changes in the way of using the library.
- A module to manipulate threads.
- Modification of the makefile and the documentation generation to deal with Java modules in the
library.
- Jirk++ mechanism to manipulate Java classes directly in C++. Documentation available
. |
01/04/2002 |
- Correction in the random generation of serial-parallel
graphs with disruption.
- A new algorithm to decompose a graph into serial-parallel components. |
01/26/2002 |
A new linear solver wrapper to use the
GNU Linear Programming
Kit. |
03/11/2002 |
- Improvement of the accuracy of the error and debugging
reports.
- A new algorithm for the minimum cost tension problem.
- An algorithm to find a topological ordering of the nodes of a graph. |
06/09/2002 |
- Mutex mechanism in the thread module.
- First release of the library with thread-safety. |
11/10/2002 |
- Improvement of the serial-parallel decomposition
algorithms for graphs.
- Correction in the aggregation/reconstruction algorithm for the minimum cost tension problem.
- Move of the B++ Library official site to Nawouak.net. |
05/30/2003 |
- Full compatibility with GCC 3 compilers.
- Improvement in the search of independent cycles, so they can be shorter.
- Data structure and random generation for the minimum cost discrete tension problem.
- CGI interface to use Build Graph online, available
. |
08/15/2003 |
- Modification of the
GNU Linear Programming Kit
wrapper to use the last 4.0 version.
- Basic heuristics to solve the minimum binary cost tension problem.
- New facilities in the decomposition of serial-parallel graphs.
- Improvement of the reconstruction method for the minimum cost tension problem.
|
11/05/2003 |
Full compatibility with Microsoft Visual C++
7 compiler. Thanks to Toni Rönkkö for porting the
POSIX "dirent"
interface to this compiler. |
03/02/2004 |
- Minor changes in the Environment module:
any object with an output stream operator can be displayed now.
- An exact algorithm to solve the minimum binary cost
tension problem on serial-parallel graphs. |
05/08/2004 |
- Full compatibility with GCC 3.2 compiler.
- Improvement of the cutting algorithm to solve the minimum binary cost tension problem
(aggregation used to solve the subproblem on a cycle).
- A wrapper for the CPLEX
Callable Library (version 8.0). |
11/27/2004 |
- A module for basic statistics.
- Pool facilities to speed up the allocation and deallocation of bunches of objects.
- New keywords for code generation (especially to design patterns for methods or functions
with variable arguments).
- Mechanism and new keywords to provide identification for classes and methods. Introduction of
the notion of method slot.
- Demangling for symbol and type strings provided by the RTTI mechanism (for GCC compilers only).
Thanks to Carlo Wood for the source code.
- A framework called B++ Simulator for discrete-event visual simulation. |
12/14/2004 |
- A module to make extendable data structures in Java.
- An extendable graph structure for Java. |
01/17/2005 |
- Rewriting of the generic make_pair
function of the STL (for efficiency reasons). A specific version dedicated to the STL map structure
is proposed.
- A Java wrapper to use Solve Tension in the
HyperProp
software. |
02/16/2005 |
- Documentation on the B++ Simulator framework,
available .
- A standalone package for Solve Tension, its name is B++ Tension Solver. |
10/02/2005 |
- Full compatibility with GCC 3.4 compiler.
- Best portability of the method slot mechanism. |
12/29/2005 |
- Full compatibility with Borland C++ 5.6.4 compiler.
- Changes in the Jirk++ mechanism to support Java 1.5. |
02/23/2006 |
- The library is now fully deterministic: the execution
only depends on the seed of the random generator (which is portable).
- Performance improvement of the graph and linear system structures.
- Modification of the GNU Linear
Programming Kit wrapper to use the last 4.9 version. |
09/08/2007 |
- With late Cygwin versions, JNI and Cygwin are incompatible:
impossible to load into Java a DLL that is linked against cygwin1.dll .
Warning: the MinGW compiler must be used instead of the Cygwin compiler
until this issue is corrected. The binary code of the B++ Tools, provided
,
is now built with the MinGW compiler. It is advised to update if you use them through JNI.
- A contribution module to replace low-level string functions such as
sprintf and sscanf .
- A module to manage the B++ Library environment in Java. Warning: there are
minor changes in the way of loading the library into Java. Check the documentation
on
for details (section "Native Methods").
- Modification of the GNU Linear
Programming Kit wrapper to use the last 4.18 version. |
08/12/2009 |
- Full compatibility with GCC 4.1.2 compiler.
- Full compatibility with Borland/CodeGear 6.10 compiler.
- Full compatibility with Microsoft Visual C++ 9 compiler.
- A module to serialize objects.
- A multijob version of the makefile.
- Modification of the CPLEX
Callable Library wrapper to use the 11.0 version. |
07/12/2016 |
- Full compatibility with GCC 4.8.3 compiler.
- Full compatibility with Borland/Embarcadero 7.20 compiler.
- Full compatibility with Microsoft Visual C++ 14 compiler.
- Minor changes to support Java 1.8.
- Modification of the GNU Linear
Programming Kit wrapper to use the 4.54 version. |