News

About igraph releases and other things

C/igraph 0.5.1

igraph 0.5.1 Release Notes

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.

The DrL layout generator was added

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

Uniform sampling of random graphs with given degree sequence

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.

Weighted shortest path algorithms

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

Function to test edge reciprocity

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

New in the C layer

  • 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

Bugs corrected in the C layer

  • 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.