新闻

关于 igraph 发布和其他事项

C/igraph 0.10.0

C/igraph 0.10.0,0.10 系列的第一个版本已发布。

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

此版本侧重于基础设施改进、稳定性和使 igraph 界面更加一致、更可预测和更易于使用。它包含许多 API 破坏性更改和函数重命名,为未来的 1.0 版本做准备,届时 API 将变得稳定。此方向的更改可能会持续到 0.11 版本。建议您尽快将代码从 0.9 迁移到 0.10,以便更容易地过渡到 1.0。

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

由于此版本的更改日志非常大,我们将仅列出此版本最重要的亮点

  • 我们现在在 API 和内部对所有索引和大多数整数数量一致地使用 igraph_integer_t。在所有 64 位系统上,此类型默认为 64 位,支持超过 20 亿个顶点的非常大的图。以前,顶点和边索引通常表示为 igraph_real_t。移动到 igraph_integer_t 也意味着许多函数中从 igraph_vector_t 更改为 igraph_vector_int_t
  • 随机数生成框架已彻底修改。现在可以从 igraph_integer_t 的整个范围中采样。类似地,随机实数的采样已得到改进,以利用 igraph_real_t 尾数的几乎全部范围。
  • 有一个新的完全内存管理的向量列表容器类型 (igraph_vector_list_t),取代了之前对非托管 igraph_vector_ptr_t 的大多数使用。先前使用 igraph_vector_ptr_t 返回结果并依赖用户适当管理内存的函数现在使用 igraph_vector_list_tigraph_graph_list_t 或类似的,并自行管理内存。
  • 一些简单的图属性,例如图是否包含自环或多重边,或者是否已连接,现在缓存在图数据结构中。第二次查询这些属性将花费恒定的计算时间。提供 igraph_invalidate_cache() 函数用于调试目的。它将使所有缓存条目无效。
  • 文件格式读取器更加健壮,并且对无效输入的容错性更高。
  • igraph 对溢出错误的抵抗力更强。
  • 通过内部重构,对鲁棒性和可靠性进行了许多改进。

您可以在 GitHub 发布页面上找到完整的更改日志