新闻

关于 igraph 发布和其他事项

C/igraph 0.10.3

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

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

此版本增加了对生成三角形和六边形晶格、从“父”向量构建树以及检索顶点集的诱导子图中边的 ID 的支持。它还改进了 UMAP 布局函数的实验性 API,修复了一些错误并改进了文档。

请继续阅读以了解有关 0.10.3 版本中更改的更多详细信息。

已添加

  • igraph_matrix_init_array() 用于通过复制按列优先或行优先顺序排列的现有 C 数组来初始化 igraph 矩阵。
  • igraph_layout_umap_compute_weights() 从距离计算 UMAP 布局算法的权重。这曾经是 igraph_layout_umap() 的一部分,但现在位于一个单独的函数中,允许用户尝试不同的加权方案。
  • igraph_triangular_lattice() 用于生成各种类型的三角形晶格。
  • igraph_hexagonal_lattice() 用于生成各种类型的六边形晶格。
  • igraph_tree_from_parent_vector() 用于从父向量(即编码每个顶点的父顶点的向量)创建树或森林。
  • igraph_induced_subgraph_edges() 生成给定顶点诱导的子图中包含的边的 ID。

已更改

  • 实验性 igraph_layout_umap() 函数的签名已更改;最后一个参数现在是一个布尔值,用于指定是否应将距离视为权重,并且删除了采样概率参数。

已修复

  • igraph_transitivity_barrat()igraph_community_fluid_communities()igraph_sir()igraph_trussness() 和 graphlet 函数由于忽略边方向,因此无法正确检测有向输入图何时具有有效的多重边。这些函数现在拒绝此类图。
  • 修复了 igraph_2dgrid_move() 中的一个错误,该错误有时会在网格单元变为空时导致大型图布局函数崩溃。
  • 当使用 ARPACK 实现并且一个顶点具有多个传出边但所有这些边的权重都为零时,igraph_pagerank()igraph_personalized_pagerank() 将无法收敛。
  • igraph_pagerank()igraph_personalized_pagerank() 不再允许负权重。以前,在使用 PRPACK 实现时,具有负权重的边会被静默忽略。ARPACK 实现会发出警告说它们被忽略了,但实际上它计算出了不正确的结果。
  • igraph_all_st_cuts()igraph_all_st_mincuts() 在某些大型图上调用时不再触发“Finally stack too large”致命错误。这是 igraph 0.10 中的回归。
  • igraph_community_label_propagation() 不再将权重四舍五入为整数。这是 igraph 0.10 中的回归。
  • igraph_read_graph_graphdb() 对输入文件执行更彻底的检查。
  • igraph_calloc() 没有零初始化分配的内存。现在已更正。请注意,宏 IGRAPH_CALLOC() 未受影响。
  • 修复了 Xcode 14.1 工具链发出的新警告。

已弃用

  • igraph_subgraph_edges() 现在已被弃用,以避免与 igraph_induced_subgraph_edges() 混淆;它的新名称是 igraph_subgraph_from_edges()。旧名称将至少保留到 igraph 0.11。

其他

  • 显着提高了 igraph_matrix_transpose() 的性能。
  • 文档改进。