tensor4all_quanticstransform/lib.rs
1#![warn(missing_docs)]
2//! Quantics transformation operators for tensor train methods.
3//!
4//! This crate provides LinearOperator constructors for various transformations
5//! in Quantics representation. It is a Rust port of transformation functionality
6//! from [Quantics.jl](https://github.com/tensor4all/Quantics.jl).
7//!
8//! # Overview
9//!
10//! All transformations return `LinearOperator` from tensor4all-treetn for
11//! consistent operator application to tensor train states.
12//!
13//! ## Available Transformations
14//!
15//! - **Flip**: f(x) = g(2^R - x)
16//! - **Shift**: f(x) = g(x + offset) mod 2^R
17//! - **Phase Rotation**: f(x) = exp(i*θ*x) * g(x)
18//! - **Cumulative Sum**: y_i = Σ_{j<i} x_j
19//! - **Fourier Transform**: Quantics Fourier Transform (QFT)
20//! - **Affine Transform**: y = A*x + b with rational coefficients
21//!
22//! # Example
23//!
24//! ```
25//! use tensor4all_quanticstransform::{flip_operator, BoundaryCondition};
26//!
27//! // Create a flip operator for 8-bit quantics representation
28//! let op = flip_operator(8, BoundaryCondition::Periodic).unwrap();
29//! assert_eq!(op.mpo.node_count(), 8);
30//! ```
31
32mod affine;
33mod common;
34mod cumsum;
35mod flip;
36mod fourier;
37mod phase_rotation;
38mod shift;
39
40pub use affine::{
41 affine_operator, affine_transform_matrix, affine_transform_tensors_unfused, AffineParams,
42 UnfusedTensorInfo,
43};
44pub use common::{BoundaryCondition, CarryDirection};
45pub use cumsum::{cumsum_operator, triangle_operator, TriangleType};
46pub use flip::{flip_operator, flip_operator_multivar};
47pub use fourier::{quantics_fourier_operator, FTCore, FourierOptions};
48pub use phase_rotation::{phase_rotation_operator, phase_rotation_operator_multivar};
49pub use shift::{shift_operator, shift_operator_multivar};