C/igraph 0.8.3

C/igraph 0.8.3 is now released. As usual, the source code can be obtained from the GitHub releases page.

The summary of changes is below.


  • igraph_vector_binsearch_slice() performs binary search on a sorted slice of a vector.


  • igraph_eigenvector_centrality() assumes the adjacency matrix of undirected graphs to have twice the number of self-loops for each vertex on the diagonal. This makes the results consistent between an undirected graph and its directed equivalent when each edge is replaced by a mutual edge pair.


  • igraph_isomorphic() now verifies that the input graphs have no multi-edges (PR #1464).
  • igraph_difference() was creating superfluous self loops (#597).
  • igraph_count_multiple() was giving incorrect results for self-loops in directed graph (PR #1399).
  • igraph_betweenness_estimate(): fixed incorrect results with finite cutoff (PR #1392).
  • igraph_eigen_matrix_symmetric(): fixed incorrect matrix multiplication (PR #1379).
  • Corrected several issues that could arise during an error condition (PRs #1405, #1406, #1438).
  • igraph_realize_degree_sequence() did not correctly detect some non-graphical inputs.
  • igraph_is_graphical_degree_sequence(): fixed incorrect results in undirected case (PR #1441).
  • igraph_community_leiden(): fixed incorrect result when self-loops are present (PR #1476).
  • igraph_eigenvector_centrality(): fixed incorrect value for isolated vertices in weighted graphs.
  • igraph_eigenvector_centrality(): corrected the handling of self-loops.
  • igraph_layout_reingold_tilford(): fixed an issue where branches of the tree would sometimes overlap.


  • igraph_degree_sequence_game(): improved performance with IGRAPH_DEGSEQ_SIMPLE_NO_MULTIPLE_UNIFORM method.
  • Improved the robustness of the test suite.
  • Documentation improvements.
  • Improved error and warning messages.
  • Improved compatibility with recent versions of Microsoft Visual C.