Skip to content

Commit f06d38e

Browse files
committed
feat: added 0.10.17 C release
1 parent 0f1a67a commit f06d38e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+129074
-2185
lines changed

Makefile

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@ all: jekyll
44
.PHONY: all core c r python jekyll devserver
55

66
# Default doc version
7-
CVERSION?=0.10.15
7+
CVERSION?=0.10.17
88
RVERSION?=1.3.5
99
PYVERSION?=0.10.1
1010

1111
# Available versions
12-
CVERSIONS ?= '0.9.0 0.9.4 0.9.5 0.9.6 0.9.7 0.9.8 0.9.9 0.9.10 0.10.0 0.10.1 0.10.2 0.10.3 0.10.4 0.10.5 0.10.6 0.10.7 0.10.8 0.10.9 0.10.10 0.10.11 0.10.12 0.10.13 0.10.15 0.10.16 master develop'
12+
CVERSIONS ?= '0.9.0 0.9.4 0.9.5 0.9.6 0.9.7 0.9.8 0.9.9 0.9.10 0.10.0 0.10.1 0.10.2 0.10.3 0.10.4 0.10.5 0.10.6 0.10.7 0.10.8 0.10.9 0.10.10 0.10.11 0.10.12 0.10.13 0.10.15 0.10.16 0.10.17 master develop'
1313
RVERSIONS ?= '1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5'
1414
PYVERSIONS ?= '0.9.6 0.9.7 0.9.8 0.9.9 0.9.10 0.9.11 0.10.0 0.10.1'
1515
PYCVERSIONS ?= '0.9.4 0.9.4 0.9.4 0.9.6 0.9.8 0.9.9 0.10.0 0.10.1'

_includes/igraph-cversion

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.10.15
1+
0.10.17

_includes/igraph-cversions

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
0.9.0 0.9.4 0.9.5 0.9.6 0.9.7 0.9.8 0.9.9 0.9.10 0.10.0 0.10.1 0.10.2 0.10.3 0.10.4 0.10.5 0.10.6 0.10.7 0.10.8 0.10.9 0.10.10 0.10.11 0.10.12 0.10.13 0.10.15 0.10.16 master develop
1+
0.9.0 0.9.4 0.9.5 0.9.6 0.9.7 0.9.8 0.9.9 0.9.10 0.10.0 0.10.1 0.10.2 0.10.3 0.10.4 0.10.5 0.10.6 0.10.7 0.10.8 0.10.9 0.10.10 0.10.11 0.10.12 0.10.13 0.10.15 0.10.16 0.10.17 master develop
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
---
2+
title: C/igraph 0.10.17
3+
date: 2025-09-19
4+
tags: c
5+
---
6+
7+
[C/igraph](https://igraph.org/c/) 0.10.17, the (hopefully) last bugfix release of the 0.10 series, has arrived,
8+
with several new additions, bug fixes and performance improvements.
9+
As usual, the source can be obtained from [the GitHub releases page](https://github.com/igraph/igraph/releases/tag/0.10.17).
10+
11+
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.
12+
13+
A summary of changes in 0.10.17 is below.
14+
15+
<!--more-->
16+
17+
### Added
18+
19+
- `igraph_layout_align()` attempts to align a graph layout with the coordinate axes in a visually pleasing manner (experimental function).
20+
- `igraph_product()` supports the lexicographic, strong and modular graph products. Thanks to Gulshan Kumar @gulshan-123 for contributing this functionality in #2772 and #2793!
21+
- `igraph_rooted_product()` computes the rooted graph product (experimental function). Thanks to Gulshan Kumar @gulshan-123 for contributing this functionality in #2793!
22+
- `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!
23+
- `igraph_path_graph()` is a convenience wrapper for `igraph_ring()` with `circular=false`.
24+
- `igraph_cycle_graph()` is a convenience wrapper for `igraph_ring()` with `circular=true`.
25+
- `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!
26+
- `igraph_invert_permutation()` inverts a permutation stored in an integer vector.
27+
- `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!
28+
- `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!
29+
- `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!
30+
31+
### Changed
32+
33+
- `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!
34+
- `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.
35+
- `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.
36+
37+
### Fixed
38+
39+
- Fix failure in SIR simulation due to roundoff errors creating slightly negative rates.
40+
- Fix infinite coordinates for certain path graphs with `igraph_layout_kamada_kawai_3d()`.
41+
- `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!
42+
- 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.
43+
- `igraph_cliques_callback()` would sometimes fail to respect a request to stop (i.e. returning `IGRAPH_STOP`) from the callback. This is now corrected.
44+
- `igraph_hypercube()` now validates the hypercube dimension and prevents negative values.
45+
- `igraph_sparsemat_view()` checks for out-of-memory conditions.
46+
- Fix assertion error when stopping search early in `igraph_simple_cycles_callback()` by returning `IGRAPH_STOP` from the callback.
47+
48+
### Deprecated
49+
50+
- `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.
51+
- `igraph_convex_hull()` is deprecated in favour of `igraph_convex_hull_2d()` and scheduled for removal in 1.0.
52+
53+
### Other
54+
55+
- Documentation improvements, including a new glossary.
56+
- 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!
57+
- `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!

0 commit comments

Comments
 (0)