god_graph/tensor/decomposition/mod.rs
1//! Tensor Decomposition Tools
2//!
3//! This module provides various tensor decomposition algorithms as the foundation
4//! for Lie group optimization and tensor ring compression.
5//!
6//! ## Algorithms
7//!
8//! - QR Decomposition (orthogonalization)
9//! - SVD Decomposition (baseline comparison)
10//! - Tensor Ring Decomposition (core algorithm)
11//! - CP Decomposition (optional)
12//! - Tucker Decomposition (optional)
13//!
14//! ## Example
15//!
16//! ```no_run
17//! use god_gragh::tensor::decomposition::{qr_decompose, svd_decompose, tensor_ring_decompose};
18//! use god_gragh::tensor::DenseTensor;
19//!
20//! # fn main() -> Result<(), Box<dyn std::error::Error>> {
21//! // Create a test tensor
22//! let tensor = DenseTensor::from_vec(
23//! vec![1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0],
24//! vec![4, 2],
25//! );
26//!
27//! // QR decomposition
28//! let (q, r) = qr_decompose(&tensor)?;
29//!
30//! // SVD decomposition
31//! let (u, s, v) = svd_decompose(&tensor, None)?;
32//!
33//! // Tensor ring decomposition
34//! let cores = tensor_ring_decompose(&tensor, &[2, 2])?;
35//! # Ok(())
36//! # }
37//! ```
38
39#[cfg(feature = "tensor")]
40pub mod qr;
41
42#[cfg(feature = "tensor")]
43pub mod svd;
44
45#[cfg(feature = "tensor")]
46pub mod tensor_ring;
47
48#[cfg(feature = "tensor")]
49pub mod lie_algebra;
50
51// Re-export decomposition functions
52#[cfg(feature = "tensor")]
53pub use qr::qr_decompose;
54
55#[cfg(feature = "tensor")]
56pub use svd::svd_decompose;
57
58#[cfg(feature = "tensor")]
59pub use tensor_ring::tensor_ring_decompose;
60
61#[cfg(feature = "tensor")]
62pub use lie_algebra::{lie_exponential, lie_logarithm, skew_symmetric_projection};