Published August 31, 2025
| Version 1.0.0-rc1
Software
Open
igraph
Authors/Creators
Description
This is the first release candidate of the upcoming 1.0.0 igraph release. Some API changes are still expected in the next few days. The changelog posted here is merged from the changelogs of the master and develop branches, and it represents all the changes compared to the latest stable release (0.10.16). These changes will be repeated in the changelog of 1.0.0 when we are ready.
Breaking changes
This section gives detailed on breaking changes you need to consider when updating code written for igraph 0.10.x.
General changes
- igraph now requires a C++ compiler that supports the C++14 standard.
igraph_setup()is now recommended to be called before using the library. This function may gain essential functions in the future. See below for details.igraph_integer_twas renamed toigraph_int_t, butigraph_integer_tis kept as an alias and it will remain available for at least the next major version. Library headers and source code usesigraph_int_tfrom now on.igraph_rng_set_default()now returns a pointer to the previous RNG. Furthermore, this function now only stores a pointer to theigraph_rng_tstruct passed to it, instead of copying the struct. Thus theigraph_rng_tmust continue to exist for as long as it is used as the default RNG.- Interruption handlers do not take a
void*argument any more; this is relevant to maintainers of higher-level interfaces only. - Interruption handlers now return an
igraph_bool_tinstead of anigraph_error_t; the returned value must be true if the calculation has to be interrupted and false otherwise. igraph_status(),igraph_statusf()and their macro versions (IGRAPH_STATUS()andIGRAPH_STATUSF()) do not convert error codes toIGRAPH_INTERRUPTEDany more. Any error code returned from the status handler function is forwarded intact to the caller. If you want to trigger the interruption of the current calculation from the status handler without reporting an error, reportIGRAPH_INTERRUPTEDexplicitly. It is the responsibility of higher-level interfaces to handle this error code appropriately.- The
RNG_BEGIN()andRNG_END()macros were removed. You are now responsible for seeding the RNG before using any igraph function that may use random numbers by callingigraph_rng_seed(igraph_rng_default(), ...), or by simply ensuring thatigraph_setup()was called before the first use of the library.
Error codes
- The
IGRAPH_EINVEVECTORerror code was removed;igraph_create()andigraph_add_edges()that used to return this error code for invalid edge vectors will now returnIGRAPH_EINVALinstead. - The
IGRAPH_NONSQUAREerror code was removed; functions that used this error code now returnIGRAPH_EINVALinstead when encountering a non-square matrix. - The
IGRAPH_EGLPerror code and all other GLP-specific error codes (starting withIGRAPH_GLP_) were removed; functions that used this error code now returnIGRAPH_FAILUREinstead, providing more details in the message associated to the error code. - The
IGRAPH_ELAPACKerror code was removed; functions that used this error code now returnIGRAPH_FAILUREinstead, providing more details in the message associated to the error code. - The
IGRAPH_CPUTIMEerror code was removed in favour of the interruption mechanism built into igraph. - The unused
IGRAPH_EDIVZEROandIGRAPH_EATTRIBUTESerror codes were removed with no replacement. - The deprecated error code
IGRAPH_ENEGLOOPwas removed. UseIGRAPH_ENEGCYCLEinstead. The underlying numerical value is the same as it was forIGRAPH_ENEGLOOP. - ARPACK-specific error codes (starting with
IGRAPH_ARPACK_...) were replaced with a singleIGRAPH_EARPACKerror code. Details about the underlying ARPACK failure are provided in the error message. - A new error code called
IGRAPH_EINVEIDwas added for cases when an invalid edge ID was encountered in an edge ID vector.
Core data structures
igraph_strvector_push_back_len()now takes a length parameter ofsize_tinstead ofigraph_integer_t.igraph_strvector_print()no longer takes a file parameter. Useigraph_strvector_fprint()to print to a file.igraph_vector_reverse()no longer returns an error code.igraph_vector_shuffle()no longer returns an error code.igraph_vector_swap()andigraph_matrix_swap()no longer return an error code.igraph_vector_list_swap()andigraph_graph_list_swap()no longer return an error code.igraph_vector_swap_elements()no longer returns an error code.igraph_vector_list_swap_elements()andigraph_graph_list_swap_elements()no longer return an error code.igraph_matrix_copy_to()gained anigraph_matrix_storage_t storageparameter that specifies whether the data should be written in column-major or row-major format.
Attribute handling
igraph_attribute_handler_tmembers that formerly took an untypedigraph_vector_ptr_targument are now taking a typedigraph_attribute_record_list_targument instead.- The deprecated
IGRAPH_ATTRIBUTE_DEFAULTvalue of theigraph_attribute_type_tenum was removed. - The
gettypemember ofigraph_attribute_table_twas renamed toget_typefor sake of consistency with the naming scheme of other struct members. - Attribute table members that retrieve graph, vertex or edge attributes must not clear the incoming result vector any more; results must be appended to the end of the provided result vector instead.
- The
valuemember ofigraph_attribute_record_tis now a union that can be used to formally treat the associated pointer as anigraph_vector_t *,igraph_strvector_t *origraph_vector_bool_t *.
Core graph manipulation
igraph_delete_vertices_map()(formerly calledigraph_delete_vertices_idx()) andigraph_induced_subgraph_map()now use-1to represent unmapped vertices in the returned forward mapping vector and they do not offset vertex indices by 1 any more. (Note that the inverse map always behaved this way, this change makes the two mappings consistent).igraph_edges()gained a newbycolargument that determines the order in which the edges are returned.bycol = falsereproduces the existing behaviour, whilebycol = truereturns the edges suitable for a matrix stored in column-wise order.igraph_neighbors()andigraph_vs_adj()gained two extra arguments to specify what to do with loop and multiple edges. This makes their interfaces consistent withigraph_adjlist_init().igraph_incident()andigraph_es_incident()gained an extra arguments to specify what to do with loop edges. This makes their interfaces consistent withigraph_inclist_init().igraph_multiple_twas removed from the public API as it is essentially a boolean. The symbolic constantsIGRAPH_MULTIPLEandIGRAPH_NO_MULTIPLEwere kept to improve readability of code written directly in C.
Basic graph properties
igraph_density()now takes an optionalweightsparameter.igraph_is_simple()gained an extraigraph_bool_targument that decides whether edge directions should be considered. Directed graphs with a mutual edge pair are treated as non-simple if this argument is set toIGRAPH_UNDIRECTED(which treats the graph as if it was undirected).- The type of the
loopsargument ofigraph_adjlist_init_complementer(),igraph_centralization_degree(),igraph_centralization_degree_tmax(),igraph_degree(),igraph_maxdegree(),igraph_sort_vertex_ids_by_degree()andigraph_strength()was changed toigraph_loops_tfromigraph_bool_t, allowing finer-grained control about how loop edges are treated. igraph_get_biadjacency()now takes aweightsparameter, and can optionally create weighted biadjacency matrices.igraph_adjacency()now treatsIGRAPH_LOOPS_TWICEasIGRAPH_LOOPS_ONCEwhen the mode isIGRAPH_ADJ_DIRECTED,IGRAPH_ADJ_UPPERorIGRAPH_ADJ_LOWER. For directed graphs, this is for the sake of consistency with the rest of the library whereIGRAPH_LOOPS_TWICEis considered for undirected graphs only. For the "upper" and "lower" modes, double-counting the diagonal makes no sense because the double-counting artifact appears when you add the transpose of an upper (or lower) diagonal matrix on top of the matrix itself. See Github issue #2501 for more context.
Graph generators
igraph_barabasi_game(),igraph_barabasi_aging_game(),igraph_recent_degree_game()andigraph_recent_degree_aging_game()no longer interprets an emptyoutseqvector as a missing out-degree sequence. PassNULLif you don't wish to specify an out-degree sequence.igraph_degree_sequence_game()no longer interprets an empty in-degree vector as a request for generating undirected graphs. To generate undirected graphs, passNULLfor in-degrees.igraph_lcf()was renamed toigraph_lcf_small()andigraph_lcf_vector()was renamed toigraph_lcf(). Nowigraph_lcf()takes shifts as a vector input, whileigraph_lcf_small()accepts a shorthand notation where shifts are given as a variable number of function arguments.igraph_sbm_game()uses anigraph_edge_type_sw_t allowed_edge_typesparameter instead ofigraph_bool_t loopsand supports generating graphs with mutli-edges. The parameter determining the total number of vertices (n) was removed as it was redundant.igraph_rewire_edges()uses anigraph_edge_type_sw_t allowed_edge_typesparameter instead ofloopsandmultiple.igraph_watts_strogatz_game()uses anigraph_edge_type_sw_t allowed_edge_typesparameter instead ofloopsandmultiple.igraph_static_fitness_game()uses anigraph_edge_type_sw_t allowed_edge_typesparameter instead ofloopsandmultiple.igraph_static_power_law_game()uses anigraph_edge_type_sw_t allowed_edge_typesparameter instead ofloopsandmultiple.
Shortest paths
igraph_distances(),igraph_distances_cutoff(),igraph_get_shortest_path(),igraph_get_shortest_paths()andigraph_get_all_shortest_paths()gained aweightsargument. The functions now automatically select the appropriate implementation (unweighted, Dijkstra, Bellman-Ford or Johnson) algorithm based on whether weights are present and whether there are negative weights or not. You can still call the individual methods by their more specific names.igraph_distances_johnson()now takes a mode parameter to determine in which direction paths should be followed.igraph_similarity_jaccard()andigraph_similarity_dice()now take two sets of vertices to create vertex pairs of, instead of one.- The weighted variants of
igraph_diameter(),igraph_pseudo_diameter(),igraph_radius(),igraph_graph_center(),igraph_eccentricity()andigraph_average_path_length()were merged into the undirected ones by adding a new argument namedweightsin the second position. - The
weightsparameter ofigraph_average_path_length(),igraph_global_efficiency(),igraph_local_efficiency()andigraph_average_local_efficiency()were moved to the second position, after thegraphitself, for sake of consistency with other functions. igraph_get_all_simple_paths()returns its results in an integer vector list (igraph_vector_int_list_t) instead of a single integer vector.igraph_get_all_simple_paths()now has an additional parameter that allows restricting paths by minimum length as well.
Community detection
igraph_community_edge_betweenness()now takes both aweightsand alengthsparameter. Egde weights (interpreted as connection strengths) are used to divide betweenness scores before selecting them for removal as well as for the modularity computation. Edge lengths are used for defining shortest path lengths during the betweenness computation. This fixes issues #2229 and #1040.igraph_community_infomap()now supports regularization and gained theis_regularizedandregularization_strengthparameters.igraph_community_label_propagation()changed signature to allow specification of label propagation algorithm (LPA) variants. A new fast label propagation variant was added.igraph_community_leiden()now takes twovertex_out_weightsandvertex_in_weightsparameters in order to support directed graphs, instead of the previous singlenode_weightsparameter. To obtain the old behavior for undirected graphs, pass the vertex weights asvertex_out_weightsand setvertex_in_weightstoNULL.- The
historyparameter ofigraph_community_leading_eigenvector()is now a pointer to anigraph_vector_int_tinstead of anigraph_vector_t. igraph_community_optimal_modularity()now takes aresolutionparameter and itsweightparameter was moved to the second place.igraph_community_spinglass_single()now usesigraph_real_tfor itsinner_linksandouter_linksoutput parameters, as these return not simply edge counts, but the sum of the weights of some edges.
Isomorphism functions and permutations
igraph_count_automorphisms()has been renamed toigraph_count_automorphisms_bliss()because it has a BLISS-specific interface. A newigraph_count_automorphisms()function was added with a simplified interface that does not depend on BLISS.igraph_automorphism_group()has been renamed toigraph_automorphism_group_bliss()because it has a BLISS-specific interface. A newigraph_automorphism_group()function was added with a simplified interface that does not depend on BLISS.igraph_canonical_permutation()has been renamed toigraph_canonical_permutation_bliss()because it has a BLISS-specific interface. A newigraph_canonical_permutation()function was added with a simplified interface that does not depend on BLISS.igraph_subisomorphic_lad()does not have a CPU time limit parameter any more. If you wish to stop the calculation from another thread or a higher level interface, use igraph's interruption mechanism.- The semantics of the
igraph_permute_vertices()permutation argument has changed: the i-th element of the vector now contains the index of the original vertex that will be mapped to the i-th vertex in the new graph. This is now consistent with how other igraph functions treat permutations and vertex index vectors; for instance, you can now pass the result ofigraph_topological_sorting()directly toigraph_permute_vertices()to obtain a new graph where the vertices are sorted topologically. - As a consequence to the change in the semantics of the
igraph_permute_vertices()permutation argument, the semantics of the permutations returned fromigraph_canonical_permutation()andigraph_canonical_permutation_bliss()have also been inverted to maintain the invariant that the output of these functions can be fed intoigraph_permute_vertices()directly.
Centralities
- All betweenness functions got
normalizedparameter to support normalizing the result by the number of vertex pairs in the graph. At the same time, parameter ordering was standardized. The following functions are affected:igraph_betweenness(),igraph_betweenness_cutoff(),igraph_edge_betweenness(),igraph_edge_betweenness_cutoff(),igraph_betweenness_subset(),igraph_edge_betweenness_subset(). igraph_edge_betweenness()andigraph_edge_betweenness_cutoff()now have aneidsparameter to return only a subset of results. This makes their interface consistent with other betweenness functions.igraph_eigenvector_centrality(),igraph_centralization_eigenvector_centrality()andigraph_centralization_eigenvector_centrality_tmax()now use amodeparameter with possible valuesIGRAPH_OUT,IGRAPH_INorIGRAPH_ALLto control how edge directions are considered. Previously they used a booleandirectedparameter.igraph_eigenvector_centrality(),igraph_centralization_eigenvector_centrality()andigraph_centralization_eigenvector_centrality_tmax()no longer have ascaleparameter. The result is now always scaled so that the largest centrality value is 1.igraph_hub_and_authority_scores()no longer has ascaleparameter. The result is now always scaled so that the largest hub and authority scores are each 1.igraph_pagerank(),igraph_personalized_pagerank()andigraph_personalized_pagerank_vs()had their parameter ordering standardized.
Layouts
igraph_layout_sugiyama()does not return an "extended graph" any more. The bends in the edges of the layout are encoded in a list of matrices instead; each item in the list belongs to an edge of the original graph and contains the control points of the edge in a row-wise fashion. The matrix will have no rows if no control points are needed on the edge.
Other network analysis
igraph_minimum_spanning_tree()takes a newmethodparameter that controls the algorithm used for finding the spanning tree. Kruskal's algorithm was added.- The deprecated
igraph_rng_get_dirichlet()function was removed. igraph_motifs_randesu_no()andigraph_motifs_randesu_estimate()now take anigraph_real_tas theirresultargument to prevent overflows when igraph is compiled with 32-bit integers.- The experimental functions
igraph_fundamental_cycles()andigraph_minimum_cycle_basis()now use the typeigraph_real_tfor theirbfs_cutoffparameter, and had theirweightsparameter moved to the 2nd position. igraph_rewire()now takes anigraph_edge_type_sw_tparameter to specify whether to create self-loops. Theigraph_rewiring_tenum type was removed. Instead of the oldIGRAPH_REWIRING_SIMPLE, useIGRAPH_SIMPLE_SW. Instead of the oldIGRAPH_REWIRING_SIMPLE_LOOPS, useIGRAPH_LOOPS_SW.
Foreign formats
igraph_read_graph_ncol()andigraph_read_graph_lgl()now uses a default edge weight of 1 instead of 0 for files that do not contain edge weights for at least some of the edges.
Added
igraph_setup()performs all initialization tasks that are recommended before using the igraph library. Right now this function only initializes igraph's internal random number generator with a practically random seed, but it may also perform other tasks in the future. It is recommended to call this function before using any other function from the library (although most of the functions will work fine now even if this function is not called).igraph_erdos_renyi_game_gnm()gained amultipleBoolean argument to uniformly sample G(n,m) graphs with multi-edges.igraph_bipartite_game_gnm()gained amultipleBoolean argument to uniformly sample bipartite G(n,m) graphs with multi-edges.igraph_iea_game()samples random multigraphs through independent edge assignment.igraph_bipartite_iea_game()samples random bipartite multigraph through independent edge assignment.igraph_weighted_biadjacency()creates a weighted graph from a bipartite adjacency matrix.igraph_vector_ptr_capacity()returns the allocated capacity of a pointer vector.igraph_vector_ptr_resize_min()deallocates unused capacity of a pointer vector.igraph_strvector_fprint()prints a string vector to a file.igraph_rng_sample_dirichlet(),igraph_rng_sample_sphere_volume()andigraph_rng_sample_sphere_surface()samples vectors from a Dirichlet distribution or from the volume or surface of a sphere while allowing the user to specify the random number generator to use.igraph_nearest_neighbor_graph()computes a neighborhood graph of spatial points based on a neighbor count, cutoff distance, and chosen metric (experimental function). Thanks to Arnór Friðriksson @Zepeacedust for implementing this in #2788!igraph_delaunay_graph()computes a Delaunay graph of a spatial point set (experimental function). Thanks to Arnór Friðriksson @Zepeacedust for implementing this in #2806!igraph_spatial_edge_lengths()computes edges lengths based on spatial vertex coordinates (experimental function).igraph_community_leiden_simple()is a simplified interface toigraph_community_leiden()that allows selecting the objective function to maximize directly.igraph_vector_difference_and_intersection_sorted()calculates the intersection and the differences of two vectors simultaneously.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 the rooted graph product. Thanks to Gulshan Kumar @gulshan-123 for contributing this functionality in #2793!igraph_mycielskian()andigraph_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 forigraph_ring()withcircular=false.igraph_cycle_graph()is a convenience wrapper forigraph_ring()withcircular=true.igraph_bond_percolation(),igraph_site_percolation()andigraph_edgelist_percolation()calculates the time evolution of the size of the giant component of a graph when edges or vertices are added one by one in a certain (or random) order. 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()andigraph_is_edge_coloring()check if a vertex or edge coloring is valid, i.e. whether adjacenct vertices/edges always have distinct colors. 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. Thanks to Zara Zong @minifinity for contributing this in #2740!
Changed
- The Pajek format reader and writer now map vertex labels to the
namevertex attribute in igraph. Theidattribute is no longer used. igraph_minimum_size_separators()no longer returns any separating vertex sets for complete graphs. Prior to igraph 1.0, it would return alln - 1size vertex subsets wherenis the vertex count.igraph_community_edge_betweenness()now treats edges with large weights as strong connections.igraph_biadjacency()now truncates non-integer matrix entries to their integer part instead of rounding them up. This brings consistency with related functions such asigraph_adjacency().- The order of edges in the graph returned by
igraph_(weighted_)adjacency()andigraph_biadjacency()has changed. Note that these functions do not guarantee any specific edge order. igraph_eigenvector_centrality()now warns about eigenvector centralities equal to zero, as these indicate a disconnected graph, for which eigenvector centrality is not meaningful.igraph_hub_and_authority_scores()now warns when a large fraction of centrality scores are zero, as this indicates a non-unique solution, and thus the returned result may not be meaningful.igraph_hub_and_authority_scores()now warns when providing an undirected graph as input, and falls back to the equivalent eigenvector centrality computation.igraph_get_stochastic_sparse()no longer throws an error when some row or column sums are zero. This brings its behaviour in line withigraph_get_stochastic().igraph_vector_append(),igraph_strvector_append()andigraph_vector_ptr_append()now use a different allocation strategy: if thetovector has insufficient capacity, they double its capacity. Previously they reserved precisely as much capacity as needed for appending thefromvector.- The implementation of the Infomap algorithm behind
igraph_community_infomap()has been updated with a more recent version (2.8.0). Isolated vertices are now supported. igraph_vector_difference_sorted()now handles multisets properly (and documents how the multiplicities are handled).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 within0 .. n-1wherenis the membership vector length.igraph_modularity()now supports arbitrary cluster indices. However, ensuring that cluster indices are within the range0 .. n-1, wherenis the vertex count, allows for better performance.
Finalized experimental functions
- The following functions are not experimental any more:
igraph_count_loops(),igraph_count_reachable(),igraph_degree_correlation_vector,igraph_distances_cutoff(),igraph_distances_floyd_warshall(),igraph_distances_dijkstra_cutoff(),igraph_ecc(),igraph_enter_safelocale(),igraph_exit_safelocale(),igraph_feedback_vertex_set(),igraph_find_cycle(),igraph_get_shortest_path_astar(),igraph_graph_power(),igraph_hexagonal_lattice(),igraph_hypercube(),igraph_is_bipartite_coloring(),igraph_is_clique(),igraph_is_complete(),igraph_is_edge_coloring(),igraph_is_vertex_coloring(),igraph_is_independent_vertex_set(),igraph_join(),igraph_joint_degree_distribution(),igraph_joint_degree_matrix(),igraph_joint_type_distribution(),igraph_layout_align(),igraph_layout_merge_dla(),igraph_mean_degree(),igraph_radius(),igraph_realize_bipartite_degree_sequence(),igraph_reachability(),igraph_transitive_closure(),igraph_tree_from_parent_vector(),igraph_triangular_lattice(),igraph_vector_intersection_size_sorted(),igraph_voronoi().
Fixed
igraph_community_spinglass_single()now usesigraph_real_tfor itsinner_linksandouter_linksoutput parameters, as these return not simply edge counts, but the sum of the weights of some edges. Thus these results are no longer incorrectly rounded.- 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 whenn_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(), andigraph_get_widest_path()incorrectly ignored edges with positive infinite width. Now they ignore edges with negative infinite width.
Removed
- Removed
igraph_Calloc(),igraph_Realloc()andigraph_Free(). UseIGRAPH_CALLOC(),IGRAPH_REALLOC()andIGRAPH_FREE()instead. - The deprecated
igraph_adjacent_triangles()was removed. Useigraph_count_adjacent_triangles()instead. - The deprecated
igraph_are_connected()was removed. Useigraph_are_adjacent()instead. - The deprecated
igraph_automorphisms()was removed. Useigraph_count_automorphisms()origraph_count_automorphisms_bliss()instead. - The deprecated
igraph_convex_hull()was removed. Useigraph_convex_hull_2d()instead. - The deprecated
igraph_decompose_destroy()was removed. - The deprecated
igraph_hub_score()andigraph_authority_score()were removed. - The deprecated
igraph_vs_seq(),igraph_vss_seq(),igraph_es_seq(),igraph_ess_range(), andigraph_vector_init_seq()were removed. Use therangealternatives instead of the oldseqones. - The deprecated
igraph_erdos_renyi_game()andigraph_bipartite_game()were removed. Use the corresponding functions with_gnm()and_gnp()in the name instead. - The deprecated
igraph_tree()was removed. Useigraph_kary_tree()instead. - The deprecated
igraph_lattice()was removed. Useigraph_square_lattice()instead. - The deprecated
igraph_minimum_spanning_tree_prim()was removed. Useigraph_minimum_spanning_tree()in conjunction withigraph_subgraph_from_edges()instead. - The deprecated
igraph_minimum_spanning_tree_unweighted()was removed. Useigraph_minimum_spanning_tree()in conjunction withigraph_subgraph_from_edges()instead. - The deprecated
igraph_get_sparsemat()was removed. Useigraph_get_adjacency_sparse()instead. - The deprecated
igraph_get_stochastic_sparsemat()was removed. Useigraph_get_stochastic_sparse()instead. - The deprecated
igraph_laplacian()was removed. Useigraph_get_laplacian()origraph_get_laplacian_sparse()instead. - The deprecated
igraph_subgraph_edges()was removed. Useigraph_subgraph_from_edges()instead. - The deprecated
igraph_read_graph_dimacs()andigraph_write_graph_dimacs()were removed. These names may be re-used in the future. Useigraph_read_graph_dimacs_flow()andigraph_write_graph_dimacs_flow()instead. - The deprecated
igraph_isomorphic_function_vf2()was removed. Useigraph_get_isomorphisms_vf2_callback()instead. - The deprecated
igraph_subisomorphic_function_vf2()was removed. Useigraph_get_subisomorphisms_vf2_callback()instead. - The deprecated
igraph_isomorphic_34()was removed. Its functionality is accessible throughigraph_isomorphic(). - The deprecated
igraph_transitive_closure_dag()was removed. Useigraph_transitive_closure()instead, which works for all graphs, not just DAGs. - The deprecated
igraph_sparsemat_copy()was removed. Useigraph_sparsemat_init_copy()instead. - The deprecated
igraph_sparsemat_eye()was removed. Useigraph_sparsemat_init_eye()instead. - The deprecated
igraph_sparsemat_diag()was removed. Useigraph_sparsemat_init_diag()instead. - The deprecated
igraph_sparsemat()andigraph_weighted_sparsemat()functions were removed; useigraph_get_adjacency_sparse()instead. - The deprecated
igraph_random_edge_walk()was removed. Its functionality is incorporated inigraph_random_walk(). - The deprecated
igraph_vector_qsort_ind()was removed. Useigraph_vector_sort_ind()instead. - The deprecated
igraph_vector_binsearch2()was removed. Useigraph_vector_contains_sorted()instead. - The deprecated
igraph_vector_copy()andigraph_matrix_copy()were removed. Useigraph_vector_init_copy()andigraph_matrix_init_copy()instead. - The deprecated
igraph_vector_e(),igraph_vector_e_ptr(),igraph_matrix_e()andigraph_matrix_e_ptr()were removed. Use the alternatives ending in_get()and_get_ptr()instead. - The deprecated
igraph_vector_move_interval2()was removed. - The deprecated
igraph_zeroin()was removed. - The deprecated
igraph_deterministic_optimal_imitation(),igraph_moran_process(),igraph_roulette_wheel_imitation()andigraph_stochastic_imitation()functions were removed. igraph_sample_dirichlet(),igraph_sample_sphere_surface()andigraph_sample_sphere_volume()were removed in favour ofigraph_rng_sample_dirichlet(),igraph_rng_sample_sphere_surface()andigraph_rng_sample_sphere_volume(), which allow the user to specify the random number generator to use.- The unused enum type
igraph_fileformat_type_twas removed. - The macros
IGRAPH_POSINFINITYandIGRAPH_NEGINFINITYwere removed. UseIGRAPH_INFINITYand-IGRAPH_INFINITYinstead.
Deprecated
igraph_delete_vertices_idx()is now deprecated in favour ofigraph_delete_vertices_map(), which is functionally equivalent but has a name that is consistent withigraph_induced_subgraph_map().
Other
- Documentation improvements.
- Improved performance when creating graphs from dense adjacency matrices (
igraph_adjacency()andigraph_weighted_adjacency()).
Files
igraph/igraph-1.0.0-rc1.zip
Files
(5.8 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:c08189c9aef89d671b83ed9d87aafc5a
|
5.8 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/igraph/igraph/tree/1.0.0-rc1 (URL)
Software
- Repository URL
- https://github.com/igraph/igraph