About igraph releases and other things

C/igraph 0.10.8, the seventh bugfix release of the 0.10 series, has arrived.

The source can be obtained from the GitHub releases page.

This is primarily a maintenance release with bug fixes, but it also adds functions to compute the joint degree matrix, the joint degree distribution and the degree correlation function of graphs as well as a generalized joint distribution of arbitrary vertex categories at the endpoints of edges.

Read on for more details about the changes in version 0.10.8.

`igraph_joint_degree_matrix()`

computes the joint degree matrix, i.e. counts connections between vertices of different degrees.`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 http://mrvar.fdv.uni-lj.si/pajek/DrawEPS.htm 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.