opensrdk_linear_algebra/matrix/
mod.rs

1use std::error::Error;
2
3pub mod bd;
4pub mod ci;
5pub mod di;
6pub mod ge;
7pub mod gt;
8pub mod kr;
9pub mod sp_hp;
10pub mod ss;
11pub mod st;
12pub mod to;
13
14pub use bd::*;
15pub use ci::*;
16pub use di::*;
17pub use ge::{
18    or_un::*,
19    sy_he::{po::*, *},
20    tr::*,
21    *,
22};
23pub use gt::*;
24pub use kr::*;
25pub use sp_hp::{pp::*, *};
26pub use ss::*;
27pub use st::{pt::*, *};
28pub use to::*;
29
30#[derive(thiserror::Error, Debug)]
31pub enum MatrixError {
32    #[error("Dimension mismatch.")]
33    DimensionMismatch,
34    #[error("BLAS routine error. routine: {routine}, info: {info}")]
35    BlasRoutineError { routine: String, info: i32 },
36    #[error("LAPACK routine error. routine: {routine}, info: {info}")]
37    LapackRoutineError { routine: String, info: i32 },
38    #[error("Others")]
39    Others(Box<dyn Error + Send + Sync>),
40}