About igraph releases and other things

July 14, 2008

igraph 0.5.1 is a bugfix release, but it actually contains many important new things as well. Here is a brief summary about each of them. See below for the complete list of changes.

This is a sophisticated and efficient layout generator written by Shawn Martin and colleagues. See more in the reference manual.

A nice random graph generator that conditions on the degree of vertices was added. It can generate undirected connected graphs. The algorithm and the implementation was done by Fabien Viger and Matthieu Latapy. See more in the reference manual.

Both the Dijkstra and the Belmann-Ford algorithms were added.
See more in the

reference manual.

Mutuality can be tested for each edge now. See more in the reference manual.

- A new layout generator called DrL.
- Uniform sampling of random connected undirected graphs with a given degree sequence.
- Some stochastic test results are ignored (for spinglass community detection, some Erdos-Renyi generator tests)
- Weighted shortest paths, Dijkstra's algorithm.
- The unweigthed shortest path routine returns
`Inf`

for unreachable vertices. - New function,
`igraph_adjlist`

can create igraph graphs from adjacency lists. - New function,
`igraph_weighted_adjacency`

can create weighted graphs from weight matrices. - New function,
`igraph_is_mutual`

to search for mutual edges. - Added inverse log-weighted similarity measure (a.k.a. Adamic/Adar similarity).
`igraph_preference_game`

and`igraph_asymmetric_preference_game`

were rewritten, they are O(|V|+|E|) now, instead of O(|V|^2).- The Bellman-Ford shortest path algorithm was added.
- Added weighted variant of
`igraph_get_shortest_paths`

, based on Dijkstra's algorithm. - Several small memory leaks were removed, and a big one from the Spinglass community structure detection function

- Several bugs were corrected in the (still experimental) C attribute handler.
- Pajek reader bug corrected, used to segfault if
`*Vertices`

was missing. - Directedness is handled correctly when writing GML files. (But note that 'correct' conflicts the standard here.)
- Corrected a bug when calculating weighted, directed PageRank on an undirected graph. (Which does not make sense anyway.)
- Some code polish to make igraph compile with GCC 4.3
- Several bugs were fixed in the Reingold-Tilford layout to avoid edge crossings.
- A bug was fixed in the GraphML reader, when the value of a graph attribute was not specified.
- Fixed a bug in the graph isomorphism routine for small (3-4 vertices) graphs.
- Corrected the random sampling implementation (
`igraph_random_sample`

), now it always generates unique numbers. This affects the G(n,m) Erdos-Renyi generator, it always generates simple graphs now. - The basic igraph constructor (
`igraph_empty_attrs`

, all functions are expected to call this internally) now checks whether the number of vertices is finite. - The LGL, NCOL and Pajek graph readers handle errors properly now.
- The non-symmetric ARPACK solver returns results in a consistent form now.
- The fast greedy community detection routine now checks that the graph is simple.
- The LGL and NCOL parsers were corrected to work with all kinds of end-of-line encodings.
- Hub & authority score calculations initialize ARPACK parameters now.x
- Fixed a bug in the Walktrap community detection routine, when applied to unconnected graphs.