sklears_decomposition/dictionary_learning/
dictionary_linalg.rs1use scirs2_core::ndarray::Array2;
4#[cfg(feature = "serde")]
5use serde::{Deserialize, Serialize};
6use sklears_core::{error::Result, types::Float};
7
8#[derive(Debug, Clone)]
10#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
11pub struct LeastSquaresSolver;
12
13#[derive(Debug, Clone)]
15#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
16pub struct LinearSystemSolver;
17
18#[derive(Debug, Clone)]
20#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
21pub struct MatrixFactorization;
22
23#[derive(Debug, Clone)]
25#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
26pub struct CholeskyDecomposition;
27
28#[derive(Debug, Clone)]
30#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
31pub struct QRDecomposition;
32
33#[derive(Debug, Clone)]
35#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
36pub struct SVDDecomposition;
37
38impl LeastSquaresSolver {
39 pub fn solve(&self, a: &Array2<Float>, b: &Array2<Float>) -> Result<Array2<Float>> {
40 Ok(Array2::zeros((a.ncols(), b.ncols())))
42 }
43}
44
45impl LinearSystemSolver {
46 pub fn solve(&self, a: &Array2<Float>, b: &Array2<Float>) -> Result<Array2<Float>> {
47 Ok(Array2::zeros((a.ncols(), b.ncols())))
49 }
50}