C/igraph 0.10.8

C/igraph 0.10.8 is now released. As usual, the source can be obtained from the GitHub releases page. This is a maintenance release bringing multiple fixes, compatibility improvements with Xcode 15, but also new experimental functions for the study of degree correlations. Updating is recommended for all users of igraph 0.10. The full list of changes is below.

Note: The two issues mentioned in the 0.10.5 announcement are now resolved by updates in third-part software:

  • Please use ARPACK 3.9.1 instead of 3.9.0.
  • The problem with the strtod() function on macOS 13.x–14.0 that was causing failures in igraph’s test suite is fixed by Apple in macOS 14.1.


  • igraph_joint_degree_matrix() computes the joint degree matrix, i.e. counts connections between vertices of different degrees. (PR #2407 by Lára Margrét Hólmfríðardóttir @larah19)
  • igraph_joint_degree_distribution() computes the joint distribution of degrees at either end of edges.
  • igraph_joint_type_distribution() computes the joint distribution of vertex categories at either end of edges, i.e. the mixing matrix.
  • igraph_degree_correlation_vector() computes the degree correlation function and its various directed generalizations.


  • The behaviour of the Pajek format reader and writer is now more closely aligned with the Pajek software and the reader is more tolerant of input it cannot interpret. Only those vertex and edge parameters are treated as valid which Pajek itself understands, therefore support for size is now dropped, and support for the font edge parameter is added. See Program Package: Pajek - Spider / Pajek to EPS for more information. Invalid/unrecognized parameters are now converted to igraph attributes by the reader, but just as before, they are not output by the writer.
  • The Pajek format writer now encodes newline and quotation mark characters in a Pajek-compatible manner (\n and ", respectively).
  • igraph_avg_nearest_neighbor_degree() now supports non-simple graphs.


  • Resolved “ignoring duplicate libraries” warning when building tests with Xcode 15 on macOS.
  • Fixed the handling of duplicate vertex IDs in igraph_induced_subgraph().
  • igraph_vector_which_min() and igraph_vector_which_max() no longer allow zero-length input, which makes them consistent with other similar functions, and was the originally intended behaviour. Passing zero-length input is invalid use and currently triggers an assertion failure.
  • igraph_erdos_renyi_game_gnm() and igraph_erdos_renyi_game_gnp() are now interruptible.
  • igraph_de_bruijn() and igraph_kautz() are now interruptible.
  • igraph_full(), igraph_full_citation(), igraph_full_multipartite() and igraph_turan() are now interruptible.
  • igraph_avg_nearest_neighbor_degree() did not compute knnk correctly in the weighted case.
  • Fixed variadic arguments of invalid types, which could cause incorrect behaviour with igraph_matrix_print(), as well as test suite failures, on some platforms. 32-bit x86 was affected when setting IGRAPH_INTEGER_SIZE to 64.
  • igraph_subisomorphic_lad() now returns a single null map when the pattern is the null graph.
  • igraph_community_spinglass() now checks its parameters more carefully.
  • igraph_similarity_dice_pairs() and igraph_similarity_jaccard_pairs() now validate vertex IDs.
  • igraph_maxflow() now returns an error code if the source and target vertices are the same. It used to get stuck in an infinite loop in earlier versions when the flow argument was non-NULL.