About igraph releases and other things
C/igraph 0.10.17, the (hopefully) last bugfix release of the 0.10 series, has arrived, with several new additions, bug fixes and performance improvements. As usual, the source can be obtained from the GitHub releases page.
This is the last planned release of the 0.x series. A new 1.0 release with a stable API will arrive soon, with quite a few breaking changes that were necessary to evolve igraph’s API into a form that we can commit ourselves to for a longer period of time. If you do not want to update your existing code, you should stick to 0.10.17 in your own projects.
A summary of changes in 0.10.17 is below.
igraph_layout_align()
attempts to align a graph layout with the coordinate axes in a visually pleasing manner (experimental function).igraph_product()
supports the lexicographic, strong and modular graph products. Thanks to Gulshan Kumar @gulshan-123 for contributing this functionality in #2772 and #2793!igraph_rooted_product()
computes the rooted graph product (experimental function). Thanks to Gulshan Kumar @gulshan-123 for contributing this functionality in #2793!igraph_mycielskian()
(experimental function) and igraph_mycielski_graph()
compute a Mycielski transformation of a graph, and a Mycielski graph, respectively. Thanks to Gulshan Kumar @gulshan-123 for contributing this functionality in #2741!igraph_path_graph()
is a convenience wrapper for igraph_ring()
with circular=false
.igraph_cycle_graph()
is a convenience wrapper for igraph_ring()
with circular=true
.igraph_site_percolation()
, igraph_bond_percolation()
and igraph_edgelist_percolation()
compute the evolution of the size of the giant component of a graph when vertices (site percolation) or edges (bond percolation) are added one by one in a given order (experimental functions). Thanks to Arnór Friðriksson @Zepeacedust for implementing this in #2778!igraph_invert_permutation()
inverts a permutation stored in an integer vector.igraph_is_vertex_coloring()
and igraph_is_edge_coloring()
check if a vertex or edge coloring is valid, i.e. whether adjacent vertices/edges always have distinct colors (experimental functions). Thanks to Sarah Rashidi @its-serah for contributing this in #2807!igraph_is_bipartite_coloring()
checks if a bipartite type assignment is valid, i.e. whether adjacent vertices always have different types (experimental function). Thanks to Sarah Rashidi @its-serah for contributing this in #2807!igraph_rich_club_sequence()
calculates how the density of a graph changes as vertices are removed (experimental function). Thanks to Zara Zong @minifinity for contributing this in #2740!igraph_bipartite_game_gnp()
can now generate graphs with more than a hundred million vertices. Thanks to Dev Lohani @devlohani99 for implementing this in #2767!igraph_reindex_membership()
now supports arbitrary cluster indices. Previously, it would error when indices are not within 0 .. n-1
where n
is the membership vector length.igraph_modularity()
now supports arbitrary cluster indices. However, ensuring that cluster indices are within the range 0 .. n-1
, where n
is the vertex count, allows for better performance.igraph_layout_kamada_kawai_3d()
.igraph_community_leiden()
did not iterate until the partition ceased to change when n_iterations < 0
. Thanks to Lucas Lopes Felipe @lucaslopes for fixing this in #2799!igraph_widest_path_widths_floyd_warshall()
, igraph_widest_path_widths_dijkstra()
, igraph_get_widest_paths()
, and igraph_get_widest_path()
incorrectly ignored edges with positive infinite width. Now they ignore edges with negative infinite width.igraph_cliques_callback()
would sometimes fail to respect a request to stop (i.e. returning IGRAPH_STOP
) from the callback. This is now corrected.igraph_hypercube()
now validates the hypercube dimension and prevents negative values.igraph_sparsemat_view()
checks for out-of-memory conditions.igraph_simple_cycles_callback()
by returning IGRAPH_STOP
from the callback.igraph_sparsemat()
and igraph_weighted_sparsemat()
are now deprecated; their functionality is duplicated by igraph_get_adjacency_sparse()
. They will be removed in version 1.0.igraph_convex_hull()
is deprecated in favour of igraph_convex_hull_2d()
and scheduled for removal in 1.0.igraph_simple_cycles()
and igraph_simple_cycles_callback()
) is sped up by skipping cycle search from some redundant start vertices. Thanks to Tim Bernhard @GenieTim for contributing this improvement in #2714!igraph_realize_degree_sequence()
is significantly sped up for simple undirected graphs, and now has near-linear complexity for this case. Thanks to Zara Zong @ minifinity for implementing this in #2786!