1use ndarray::{Ixs, ShapeError};
4use thiserror::Error;
5
6pub type Result<T> = ::std::result::Result<T, LinalgError>;
7
8#[derive(Debug, Error)]
10pub enum LinalgError {
11 #[error("Not square: rows({}) != cols({})", rows, cols)]
13 NotSquare { rows: i32, cols: i32 },
14
15 #[error(transparent)]
17 Lapack(#[from] lax::error::Error),
18
19 #[error("invalid stride: s0={}, s1={}", s0, s1)]
21 InvalidStride { s0: Ixs, s1: Ixs },
22
23 #[error("Memroy is not continously")]
25 MemoryNotCont,
26
27 #[error("{} cannot be made from a ({}, {}) matrix", obj, rows, cols)]
29 NotStandardShape {
30 obj: &'static str,
31 rows: i32,
32 cols: i32,
33 },
34
35 #[error(transparent)]
37 Shape(#[from] ShapeError),
38}