新闻

关于 igraph 发布和其他事项

C/igraph 0.10.2

C/igraph 0.10.2,0.10 系列的第二个错误修复版本已发布。

源代码可以从 GitHub 发布页面 获取。

此版本主要包括错误修复和文档改进,但它也添加了一些新函数(具有截止的最短路径、Floyd-Warshall 算法和 Voronoi 分区),并具有实验性 API,该 API 在即将发布的版本中可能仍会更改。实验性函数在这里和文档中都已清楚地标记。这些函数的 API 将在 0.11.0 中最终确定,之后预计不会再有任何更改。

阅读下文了解有关 0.10.2 版本中更改的更多详细信息。

已添加

  • igraph_distances_cutoff()igraph_distances_dijkstra_cutoff() 计算具有路径长度上限的最短路径(实验性函数)。
  • igraph_distances_floyd_warshall() 用于计算密集图中的所有顶点对之间的最短路径长度(实验性函数)。
  • igraph_ecc() 计算某些边的边聚类系数(实验性函数)。
  • igraph_voronoi() 计算顶点的 Voronoi 分区(实验性函数)。
  • igraph_count_multiple_1() 确定图中单条边的多重性。
  • igraph_dqueue_get() 通过索引访问队列中的元素。
  • igraph_degree_1() 有效地检索单个顶点的度数。
  • igraph_lazy_adjlist_has()igraph_lazy_inclist_has() 用于检查是否已计算并存储惰性邻接表/关联表中给定顶点的相邻顶点/入射边。

已更改

  • igraph_edge() 现在验证输入的边 ID 是否有效。
  • igraph_community_leading_eigenvector()igraph_adjacency_spectral_embedding()igraph_laplacian_spectral_embedding()igraph_arpack_rssolve()igraph_arpack_rnsolve() 现在在需要时使用 igraph 自己的 RNG 生成随机起始向量,而不是依赖 LAPACK 或 ARPACK 来执行此操作。这确保了如果 igraph 的 RNG 用相同的值播种,从这些函数获得的结果保持不变。
  • igraph_community_leading_eigenvector() 当存在多个同样可能的分割时(由大于 1 的主导特征向量的多重性指示),不再停止分割过程。该算法选择一个任意分割并正常进行。

已修复

  • 修复了 igraph_get_k_shortest_paths() 中的一个错误,该错误有时会在无向图上将 mode 参数设置为 IGRAPH_OUTIGRAPH_IN 时产生不正确的结果。
  • igraph_trussness() 现在可以中断。
  • igraph_spanner() 现在可以中断。
  • igraph_layout_umap()igraph_layout_umap3d() 现在可以中断。
  • 在一些罕见的情况下,舍入错误会导致 igraph_distance_johnson() 在具有负权重的图上失败。
  • igraph_eulerian_cycle()igraph_eulerian_path() 现在在图不包含欧拉环或路径时返回更具体的错误代码 (IGRAPH_ENOSOL)。
  • igraph_heap_init_array() 没有为非实数专门化正确复制数组数据。
  • igraph_layout_umap_3d() 现在实际使用三个维度。
  • igraph_layout_umap()igraph_layout_umap_3d() 现在可以中断。
  • igraph_vit_create()igraph_eit_create() 不再尝试从空的基于范围的顶点或边选择器为空图或无边图创建迭代器时失败。
  • igraph_write_graph_leda() 没有正确打印某些警告消息中的属性名称。
  • 解决了 Clang 15 引入的新警告。
  • 在生成的 pkg-config 文件中,libxml2 现在位于 Requires.private 部分,而不是 Libs.private 部分。

已移除

  • 已移除未使用的和未记录的 igraph_bfgs() 函数。
  • 已移除未记录的函数 igraph_complex_mod()。改用 igraph_complex_abs(),因为它具有相同的功能。

已弃用

  • IGRAPH_EDRL 错误代码已弃用;DrL 算法现在返回 IGRAPH_FAILURE,而以前返回 IGRAPH_EDRL(在实践中不太可能发生)。
  • 未记录的函数 igraph_dqueue_e() 现在已弃用,并被 igraph_dqueue_get() 取代。
  • igraph_finite()igraph_is_nan()igraph_is_inf()igraph_is_posinf()igraph_is_neginf() 现在已弃用。它们是过去没有标准替代方案时期的遗留物。改用 C99 标准 isfinite()isnan()isinf()