新闻

关于 igraph 发布和其他事项

C/igraph 0.9.1

C/igraph 0.9.1,0.9 系列的第一个错误修复版本已发布。

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

此版本仅包含错误修复,除了一个关于向量的字典排序的次要补充,这对于次要版本升级来说并不重要。变更日志如下。

已添加

  • igraph_vector_lex_cmp()igraph_vector_colex_cmp() 用于向量的字典序和反字典序比较。这些函数也可用于排序。

已更改

  • igraph_community_multilevel() 现在是随机化的(感谢 Daniel Noom)。

已修复

  • 控制库安装目录名称的 CMake 设置(如 CMAKE_INSTALL_LIBDIR)未被遵守。
  • 在某些情况下,生成的 pkg-config 文件包含不正确的包含目录路径。
  • 以下函数未从共享库中导出:igraph_subcomponent()igraph_stack_ptr_free_all()igraph_stack_ptr_destroy_all()igraph_status_handler_stderr()igraph_progress_handler_stderr()
  • 内置随机数生成器(igraph_rngtype_mt19937igraph_rngtype_randigraph_rngtype_glibc2)未从共享库中导出。
  • igraph_layout_graphopt() 不再将 spring_length 参数四舍五入为整数。
  • igraph_get_all_shortest_paths_dijkstra() 不再修改 res 向量的项析构函数。
  • 当计算到所有顶点的路径时,igraph_get_shortest_path_bellman_ford() 无法正常工作。
  • igraph_arpack_rnsolve() 更仔细地检查其参数。
  • 当请求 csize 但未请求 membership 时,igraph_community_to_membership() 不再崩溃。
  • igraph_citing_cited_type_game():修复了内存泄漏(感谢 Daniel Noom。)
  • 当与空图一起使用时,igraph_transitivity_undirected()igraph_transitivity_avglocal_undirected()igraph_transitivity_barrat() 不再触发断言失败。
  • 当使用 IGRAPH_PAGERANK_ALGO_PRPACK 时,igraph_(personalized_)pagerank() 将为顶点少于 128 个的加权多重图返回不正确的结果。
  • igraph_diversity() 现在更仔细地检查其输入,并且当输入图具有多重边或是有向图时,会抛出错误。
  • to 参数与 from 不同时,igraph_shortest_paths_johnson() 将返回不正确的结果(感谢 Daniel Noom)。
  • 在无向简单图的情况下,对于某些特殊度序列,igraph_is_graphical() 将无法设置结果变量。
  • 当找到超过 2147483647(即 2^31 - 1)个团时,非最大团查找函数有时会返回不完整的结果。
  • GLPK 内部错误不再导致 igraph 崩溃。
  • 修复了一些可能在错误条件下或某些函数被中断时发生的潜在内存泄漏。
  • 在 Windows 上测试 DLL 构建时,PATH 有时未正确设置,导致测试失败。
  • 从 git 存储库(而不是发布 tarball)编译时,该构建将因最新版本的 bisonflex 而失败。

其他

  • 文档改进。
  • 文档构建速度更快。
  • 允许在交叉编译时为 f2c 使用预生成的 arith.h 标头;请参阅文档的安装部分。
  • 现在,IGRAPH_ENABLE_LTO 构建选项支持 AUTO 值,该值仅在编译器支持 LTO 时才使用 LTO。警告:CMake 可能并不总是能够检测到 LTO 未完全支持。因此,默认设置为 OFF
  • 以下函数现在是可中断的:igraph_grg_game()igraph_sbm_game()igraph_barabasi_game()igraph_barabasi_aging_game()
  • 使用 GLPK 的函数(例如 igraph_feedback_arc_set()igraph_community_optimal_modularity())现在是可中断的。
  • 添加了对不识别 -Wno-varargs 标志的旧版本 Clang 的支持。

致谢

  • 非常感谢 Daniel Noom 继续扩展测试套件,并在过程中发现和修复了多个错误!