pub mod context;
#[cfg(feature = "cuda-oxide")]
pub(crate) mod cuda_oxide_kernels;
pub mod error;
pub mod linear_op;
pub mod linear_solver;
pub mod matrix;
pub mod scalar;
pub mod vector;
pub use error::LaError;
pub use context::{faer::FaerContext, nalgebra::NalgebraContext, Context};
pub use linear_op::LinearOp;
pub use linear_solver::LinearSolver;
pub use linear_solver::{faer::sparse_lu::FaerSparseLU, FaerLU, NalgebraLU, NalgebraNativeLU};
#[cfg(feature = "suitesparse")]
pub use linear_solver::suitesparse::klu::KLU;
pub use matrix::{
default_solver::DefaultSolver, dense_faer_serial::FaerMat, dense_nalgebra_serial::NalgebraMat,
sparse_faer::FaerSparseMat, DenseMatrix, Matrix, MatrixCommon,
};
pub(crate) use matrix::extract_block::ColMajBlock;
pub use matrix::{
sparsity::Dense, sparsity::DenseRef, sparsity::MatrixSparsity, sparsity::MatrixSparsityRef,
MatrixRef,
};
pub use scalar::{scale, FaerScalar, IndexType, NalgebraScalar, Scalar, Scale};
pub use vector::DefaultDenseMatrix;
pub use vector::{
faer_serial::{FaerVec, FaerVecIndex, FaerVecMut, FaerVecRef},
nalgebra_serial::{NalgebraVec, NalgebraVecMut, NalgebraVecRef},
Vector, VectorCommon, VectorIndex, VectorRef, VectorView, VectorViewMut,
};
#[cfg(feature = "cuda")]
pub use context::cuda::CudaContext;
#[cfg(feature = "cuda")]
pub use linear_solver::cuda::lu::CudaLU;
#[cfg(feature = "cuda")]
pub use matrix::cuda::CudaMat;
#[cfg(feature = "cuda")]
pub use scalar::cuda::{CudaType, ScalarCuda};
#[cfg(feature = "cuda")]
pub use vector::cuda::{CudaIndex, CudaVec, CudaVecMut, CudaVecRef};
#[cfg(feature = "cuda-oxide")]
pub use context::cuda_oxide::OxideContext;
#[cfg(feature = "cuda-oxide")]
pub use linear_solver::cuda_oxide::lu::OxideLU;
#[cfg(feature = "cuda-oxide")]
pub use matrix::cuda_oxide::OxideMat;
#[cfg(feature = "cuda-oxide")]
pub use vector::cuda_oxide::{OxideIndex, OxideVec, OxideVecMut, OxideVecRef};