#![warn(clippy::all)]
#![warn(missing_docs)]
pub mod compat;
pub mod eig;
pub mod error;
pub mod format;
pub mod handle;
pub mod host_csr;
pub mod ops;
pub mod preconditioner;
pub(crate) mod ptx_helpers;
pub use error::{SparseError, SparseResult};
pub use format::{
BsrMatrix, CooMatrix, CscMatrix, Csr5Matrix, CsrMatrix, EllMatrix, HybMatrix, HybPartition,
HybStatistics,
};
pub use handle::SparseHandle;
pub mod prelude {
pub use crate::compat::{
CusparseCompatHandle, CusparsePointerMode, cusparse_spgemm, cusparse_spmv, cusparse_spsv,
};
pub use crate::eig::{LobpcgResult, ShiftInvertResult, lobpcg, shift_invert};
pub use crate::error::{SparseError, SparseResult};
pub use crate::format::{
BsrMatrix, CooMatrix, CscMatrix, Csr5Matrix, CsrMatrix, EllMatrix, HybMatrix, HybPartition,
HybStatistics, amd_ordering, inverse_permutation, permute_csr, rcm_ordering,
};
pub use crate::handle::SparseHandle;
pub use crate::host_csr::HostCsr;
pub use crate::ops::{
BatchScheduler, BatchedSpGEMM, BatchedSpMV, BatchedSpMVPlan, BatchedTriSolve,
RecommendedFormat, SpMVAlgo, SpMatFormat, Strategy, UniformBatchedSpMV, analyze_sparsity,
auto_spmv, batched_spmv_cpu, csr5_spmv, generate_batched_spmv_ptx,
mixed_precision_spmv_cpu, recommend_format, select_format, spgemm_merge, spmm, spmv,
spmv_bsr, spmv_ell,
};
pub use crate::ops::{
EdgeFeatures, GnnSparseConfig, MessagePassingOp, add_self_loops, compute_degree_matrix,
gather, scatter_reduce, sparse_attention_message, sparse_message_passing,
sparse_row_softmax, symmetric_normalize,
};
pub use crate::ops::{SymbolicPattern, spgemm_symbolic_pattern};
pub use crate::preconditioner::{
AmgHierarchy, AmgLevel, AmgOptions, IncompleteCholeskyK, amg_setup, amg_solve, amg_v_cycle,
ic_k,
};
pub use crate::preconditioner::{IlukConfig, IlukFactorization};
}