ruvector-solver 2.2.3

Sublinear-time solver for RuVector: O(log n) to O(√n) algorithms for sparse linear systems, PageRank, and spectral methods
Documentation
[package]

name = "ruvector-solver"

version.workspace = true

edition.workspace = true

rust-version.workspace = true

license.workspace = true

authors.workspace = true

repository.workspace = true

description = "Sublinear-time solver for RuVector: O(log n) to O(√n) algorithms for sparse linear systems, PageRank, and spectral methods"

keywords = ["linear-algebra", "sparse-matrix", "pagerank", "solver", "sublinear"]

categories = ["mathematics", "science", "algorithms"]



[features]

default = ["neumann", "cg", "forward-push"]

nalgebra-backend = ["nalgebra"]

parallel = ["rayon", "crossbeam"]

simd = []

wasm = []

full = ["nalgebra-backend", "parallel", "all-algorithms"]

neumann = []

forward-push = []

backward-push = []

hybrid-random-walk = ["getrandom"]

true-solver = ["neumann"]

cg = []

bmssp = []

all-algorithms = ["neumann", "forward-push", "backward-push", "hybrid-random-walk", "true-solver", "cg", "bmssp"]



[dependencies]

serde = { workspace = true, features = ["derive"] }

thiserror = { workspace = true }

tracing = { workspace = true }

rand = { workspace = true }

nalgebra = { version = "0.33", default-features = false, features = ["std"], optional = true }

rayon = { workspace = true, optional = true }

crossbeam = { workspace = true, optional = true }

getrandom = { version = "0.2", optional = true }

dashmap = { workspace = true }

parking_lot = { workspace = true }



[target.'cfg(target_arch = "wasm32")'.dependencies]

getrandom = { version = "0.2", features = ["js"] }



[dev-dependencies]

criterion = { workspace = true }

proptest = { workspace = true }

approx = "0.5"



[[bench]]

name = "solver_baseline"

harness = false



[[bench]]

name = "solver_neumann"

harness = false



[[bench]]

name = "solver_cg"

harness = false



[[bench]]

name = "solver_push"

harness = false



[[bench]]

name = "solver_e2e"

harness = false



[lints.rust]

unexpected_cfgs = { level = "allow", priority = -1 }

unused_imports = "allow"

dead_code = "allow"

unused_variables = "allow"



[lints.clippy]

pedantic = { level = "allow", priority = -2 }

all = { level = "warn", priority = -1 }

correctness = { level = "deny", priority = 0 }

suspicious = { level = "deny", priority = 0 }

needless_range_loop = "allow"

manual_div_ceil = "allow"

manual_is_multiple_of = "allow"

manual_range_contains = "allow"

redundant_field_names = "allow"

len_zero = "allow"

get_first = "allow"

useless_vec = "allow"

manual_clamp = "allow"

unnecessary_map_or = "allow"

needless_borrow = "allow"

needless_borrows_for_generic_args = "allow"

mut_from_ref = { level = "allow", priority = 1 }