Skip to main content

Module decomposition

Module decomposition 

Source
Expand description

Tensor Decomposition Tools

This module provides various tensor decomposition algorithms as the foundation for Lie group optimization and tensor ring compression.

§Algorithms

  • QR Decomposition (orthogonalization)
  • SVD Decomposition (baseline comparison)
  • Tensor Ring Decomposition (core algorithm)
  • CP Decomposition (optional)
  • Tucker Decomposition (optional)

§Example

use god_gragh::tensor::decomposition::{qr_decompose, svd_decompose, tensor_ring_decompose};
use god_gragh::tensor::DenseTensor;

// Create a test tensor
let tensor = DenseTensor::from_vec(
    vec![1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0],
    vec![4, 2],
);

// QR decomposition
let (q, r) = qr_decompose(&tensor)?;

// SVD decomposition
let (u, s, v) = svd_decompose(&tensor, None)?;

// Tensor ring decomposition
let cores = tensor_ring_decompose(&tensor, &[2, 2])?;

Re-exports§

pub use qr::qr_decompose;
pub use svd::svd_decompose;
pub use tensor_ring::tensor_ring_decompose;
pub use lie_algebra::lie_exponential;
pub use lie_algebra::lie_logarithm;
pub use lie_algebra::skew_symmetric_projection;

Modules§

lie_algebra
Lie Algebra Utilities
qr
QR Decomposition for tensor orthogonalization
svd
SVD Decomposition for tensor analysis
tensor_ring
Tensor Ring Decomposition