11个版本
0.2.1 | 2022年3月14日 |
---|---|
0.2.0 | 2022年3月2日 |
0.1.8 | 2021年12月30日 |
0.1.4 | 2021年11月25日 |
0.1.0 | 2021年10月30日 |
#11 in #graph-theory
每月34次下载
315KB
5.5K SLoC
GRATHE
一个GRAph THEory库的Rust实现。
描述
Grathe是一个图论库,它提供了一种连贯的编程体验。其主要目标是减少将理论方面转换为实际计算的努力。
如何使用
以下是一个简短的示例
use anyhow::Result; // Catch any error.
use grathe::prelude::*; // Frequently used items.
fn main() -> Result<()> {
// Define an (undirected) graph given its edges.
let G = Graph::from_edges([
(0, 1), (1, 2), (3, 4)
]);
// Iterate over the vertex set.
for &x in V!(G) {
assert!(G.has_vertex(&x));
}
// Iterate over the neighbors of `1`.
for x in Ne!(G, &1) {
assert!(G.has_edge(x, &1)?);
}
// Define a graph with labels, equivalent to Graph::<String>.
let mut G = Graphl::null();
// Add a vertex to the graph.
let x = G.add_vertex("A")?;
assert!(G.has_vertex(&x));
// Handle errors in a Rust-compatible way.
assert!(
match G.add_vertex(x) {
Err(_) => true, // Error! Vertex already defined!
Ok(_) => false, // Ok! Vertex added successfully!
}
);
// Exit with no error.
Ok(())
}
如何安装
将 grathe
作为依赖项添加到 Cargo.toml
中。
如何测试
需要 openblas
库。克隆仓库,并在其中运行以下命令。
Linux
sudo apt-get install libopenblas-dev
MacOS
brew install openblas
Windows
cargo install cargo-vcpkg
cargo vcpkg -v build
cp target/vcpkg/installed/x64-windows/lib/libopenblas.lib target/vcpkg/installed/x64-windows/lib/openblas.lib
最后,像往常一样运行测试
cargo test
参考资料
此仓库基于以下文献
许可证
Grathe根据Apache许可证版本2或MIT许可证双许可,以与Rust项目兼容。
依赖项
~68MB
~1M SLoC