tensor4all_core/defaults/
mod.rs

1//! Default concrete type implementations.
2//!
3//! This module provides the default concrete types for tensor network operations:
4//!
5//! - [`DynId`]: Runtime identity (UUID-based unique identifier)
6//! - [`TagSet`]: Tag set for metadata (Arc-wrapped for cheap cloning)
7//! - [`Index`]: Generic index type (`Index<Id, Tags>`)
8//! - [`DynIndex`]: Default index type (`Index<DynId, TagSet>`)
9//! - [`TensorDynLen`]: Dense tensor with dynamic rank
10//!
11//! Linear algebra operations:
12//! - [`svd::svd`]: Singular Value Decomposition
13//! - [`qr::qr`]: QR decomposition
14//! - [`factorize::factorize`]: Unified factorization interface
15//! - [`direct_sum::direct_sum`]: Direct sum of tensors
16//!
17//! These types are suitable for most tensor network applications and provide
18//! a good balance of flexibility and performance.
19
20pub mod index;
21/// Dynamic-length tensor implementation.
22pub mod tensordynlen;
23
24// Contraction
25pub mod contract;
26
27// Linear algebra modules
28pub mod direct_sum;
29pub mod factorize;
30pub mod qr;
31pub mod svd;
32
33pub use contract::{
34    build_diag_union, collect_sizes, contract_connected, contract_multi,
35    print_and_reset_contract_profile, remap_output_ids, remap_tensor_ids, reset_contract_profile,
36    AxisUnionFind,
37};
38pub use index::{DefaultIndex, DefaultTagSet, DynId, DynIndex, Index, TagSet};
39pub use tensordynlen::{
40    compute_permutation_from_indices, diag_tensor_dyn_len, unfold_split, RandomScalar,
41    TensorAccess, TensorDynLen,
42};
43
44// Re-export linear algebra functions and types
45pub use direct_sum::direct_sum;
46pub use factorize::{
47    factorize, Canonical, FactorizeAlg, FactorizeError, FactorizeOptions, FactorizeResult,
48};
49pub use qr::{default_qr_rtol, qr, qr_with, set_default_qr_rtol, QrError, QrOptions};
50pub use svd::{default_svd_rtol, set_default_svd_rtol, svd, svd_with, SvdError, SvdOptions};