Skip to content

igraph 0.10.17

Choose a tag to compare

@ntamas ntamas released this 19 Sep 11:27
529e7be

This is the final release of igraph in the 0.x series. igraph 1.0 will follow soon with a commitment to a stable API.

Added

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

Changed

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

Fixed

  • Fix failure in SIR simulation due to roundoff errors creating slightly negative rates.
  • Fix infinite coordinates for certain path graphs with 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!
  • The widest path functions 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.
  • Fix assertion error when stopping search early in igraph_simple_cycles_callback() by returning IGRAPH_STOP from the callback.

Deprecated

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

Other

  • Documentation improvements, including a new glossary.
  • Simple cycle search (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!