use crate::matrices::types::*;
use serde::{Deserialize, Serialize};
mod construction;
mod decomposition;
mod operations;
mod solvers;
pub use operations::CoreMatrixOps;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub enum Matrix {
Dense(MatrixData),
Identity(IdentityMatrixData),
Zero(ZeroMatrixData),
Diagonal(DiagonalMatrixData),
Scalar(ScalarMatrixData),
UpperTriangular(UpperTriangularMatrixData),
LowerTriangular(LowerTriangularMatrixData),
Symmetric(SymmetricMatrixData),
Permutation(PermutationMatrixData),
}