igraph_i_cattribute_combine_vertices(): fixed invalid cleanup code that eventually filled up the "finally" stack when combining vertices with attributes extensively.igraph_hrg_sample(): fixed incorrect function prototypeigraph_is_posinf()andigraph_is_neginf(): fixed incorrect result on platforms where the sign of the result ofisinf()is not indicative of the sign of the input.- Fixed building with vendored LAPACK and external BLAS
- Fixed building with XCode 12.2 on macOS
- Documentation improvements
- General code cleanup to reduce the number of compiler warnings
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 withIGRAPH_DEGSEQ_SIMPLE_NO_MULTIPLE_UNIFORMmethod.- Improved the robustness of the test suite.
- Documentation improvements.
- Improved error and warning messages.
- Improved compatibility with recent versions of Microsoft Visual C.
- Improved argument checking:
igraph_all_st_mincuts()andigraph_sir() - Improved interruptibility:
igraph_sir()
igraph_community_leiden(): fixed crash when interrupting- The tests are now more robust. Some incorrect test failures were fixed when running on i386 architecture, or when using different versions of external dependencies.
- Improved error messages from
igraph_sir(). - Improved compatibility with more recent versions of Microsoft Visual C.
- Improved interruptability:
igraph_degree_sequence_game() - Improved argument checking:
igraph_forest_fire_game() - Updated the plfit library to version 0.8.1
igraph_community_edge_betweenness(): fix for graphs with no edges (PR #1312)igraph_bridges()now handles multigraphs correctly (PR #1335)igraph_avg_nearest_neighbor_degree(): fix for memory leak in weighted case (PR #1339)igraph_community_leiden(): fix crash bug (PR #1357)
- Included
ACKOWLEDGEMENTS.md - Documentation improvements
-
Trees
igraph_to_prufer()andigraph_from_prufer()convert labelled trees to/from Prüfer sequencesigraph_tree_game()samples uniformly from the set of labelled treesigraph_is_tree()checks if a graph is a treeigraph_random_spanning_tree()picks a spanning tree of a graph uniformly at randomigraph_random_edge_walk()returns the indices of edges traversed by a random walk; useful for multigraphs
-
Community detection
igraph_community_fluid_communities()detects communities based on interacting fluidsigraph_community_leiden()detects communities with the Leiden method
-
Cliques
igraph_maximal_cliques_hist()counts maximal cliques of each sizeigraph_maximal_cliques_callback()calls a function for each maximal cliqueigraph_clique_size_hist()counts cliques of each sizeigraph_cliques_callback()calls a function for each cliqueigraph_weighted_cliques()finds weighted cliques in graphs with integer vertex weightsigraph_weighted_clique_number()computes the weighted clique numberigraph_largest_weighted_cliques()finds the largest weighted cliques
-
Graph generators
igraph_hsbm_game()for a hierarchical stochastic block modeligraph_hsbm_list_game()for a more general hierarchical stochastic block modeligraph_correlated_game()generates pairs of correlated random graphs by perturbing existing adjacency matrixigraph_correlated_pair_game()generates pairs of correlated random graphsigraph_tree_game()samples uniformly from the set of labelled treesigraph_dot_product_game()generates a random dot product graphigraph_realize_degree_sequence()creates a single graph with a given degree sequence (Havel-Hakimi algorithm)
-
Graph embeddings
igraph_adjacency_spectral_embedding()andigraph_laplacian_spectral_embedding()provide graph embedddingsigraph_dim_select()provides dimensionality selection for singular values using profile likelihood
-
Isomorphism
igraph_automorphism_group()computes the generators of the automorphism group of a simple graphigraph_simplify_and_colorize()encodes edge and self-loop multiplicities into edge and vertex colors; use in conjunction with VF2 to test isomorphism of non-simple graphs
-
Other
igraph_bridges()finds edges whose removal would disconnect a graphigraph_vertex_coloring_greedy()computes a vertex coloring using a greedy algorithmigraph_rewire_directed_edges()randomly rewires only the starting points or only the endpoints of directed edges- Various
igraph_local_scan_*functions provide local counts and statistics of neighborhoods igraph_sample_sphere_surface()samples points uniformly from the surface of a sphereigraph_sample_sphere_volume()samples points uniformly from the volume of a sphereigraph_sample_dirichlet()samples points from a Dirichlet distributionigraph_malloc(), to be paired with the existingigraph_free()
igraph_degree_sequence_game(): new method added for uniform sampling:IGRAPH_DEGSEQ_SIMPLE_NO_MULTIPLE_UNIFORMigraph_modularity_matrix(): removedmembershipargument (PR #1194)igraph_avg_nearest_neighbor_degree(): addedmodeandneighbor_degree_modearguments (PR #1214).igraph_get_all_simple_paths(): addedcutoffargument (PR #1232).igraph_unfold_tree(): no longer preserves edge ordering of original graphigraph_decompose(): support strongly connected componentsigraph_isomorphic_bliss(),igraph_canonical_permutation(),igraph_automorphisms(): added additional arguments to support vertex colored graphs (PR #873)igraph_extended_chordal_ring: added argument to support direction (PR #1096), and fixed issue #1093.
- The Bliss isomorphism library was updated to version 0.73. This version adds support for vertex colored and directed graphs.
- igraph now uses the high-performance Cliquer library to find (non-maximal) cliques
- Provide proper support for Windows, using
__declspec(dllexport)and__declspec(dllimport)forDLLs and static usage by using#define IGRAPH_STATIC 1. - Provided integer versions of
dqueueandstackdata types.