sklears_cross_decomposition/tensor_methods/common.rs
1//! Common types and utilities for tensor methods
2
3use scirs2_core::ndarray::Array2;
4use sklears_core::types::Float;
5use std::marker::PhantomData;
6
7/// Initialization methods for tensor decomposition
8#[derive(Debug, Clone)]
9pub enum TensorInitMethod {
10 /// Random initialization
11 Random,
12 /// SVD-based initialization
13 SVD,
14 /// User-provided initialization
15 Custom(Vec<Array2<Float>>),
16}
17
18/// Marker type for untrained state
19#[derive(Debug, Clone)]
20pub struct Untrained;
21
22/// Marker type for trained state
23#[derive(Debug, Clone)]
24pub struct Trained;
25
26impl Default for TensorInitMethod {
27 fn default() -> Self {
28 TensorInitMethod::Random
29 }
30}