Your browser sucks, JavaScript disabled! Gunnar's console needs JavaScript and WebAssembly. Git over SSH on port 2222 does not.

nordisk/nornir

crates/mimir-graph/src/lib.rs

//! Mimir v2 graph engine: a small, safe layer over SuiteSparse:GraphBLAS.
//!
//! Only what the lenses need (plan §4/§6/§11): boolean adjacency matrices
//! imported straight from CSR or from Arrow `(from_ord, to_ord)` edge batches,
//! and the semiring queries the lenses are rewritten onto — reachability
//! (forward and reverse, many seeds at once), fan-in / fan-out, fewest hops
//! (MIN_PLUS), worst value on any path (MAX_SECOND), scope masks, structural
//! similarity `A·Aᵀ`, weakly connected components and snapshot diff.
//!
//! Every GraphBLAS object is owned by an RAII handle (`GrB_free` on drop);
//! every call returns [`Result`]. The library is initialised once per process
//! (`GrB_init(GrB_NONBLOCKING)`) on first use; see [`runtime`].
//!
//! Handles are `Send` but not `Sync`: a matrix may move between threads, but
//! GraphBLAS objects with pending work must not be read from two threads at
//! once. Parallelism lives *inside* each call (OpenMP, [`runtime::set_threads`]).

pub mod arrow;
pub mod csr;
mod error;
mod matrix;
pub mod ops;
pub mod runtime;
mod types;
mod vector;

pub use error::{Error, Result};
pub use matrix::Matrix;
pub use types::Scalar;
pub use vector::Vector;