Expand description
Tensor Cross Interpolation (TCI) library
This crate provides tensor cross interpolation algorithms for efficiently
approximating high-dimensional tensors as tensor trains. Given a function
f(i_1, ..., i_N) defined on a discrete multi-index grid, TCI finds a
low-rank TensorTrain approximation by
evaluating only a small subset of the total entries.
§Algorithms
| Entry point | Algorithm | State type | Notes |
|---|---|---|---|
crossinterpolate2 | TCI2 (two-site) | TensorCI2 | Primary, actively maintained |
crossinterpolate1 | TCI1 (one-site) | TensorCI1 | Legacy, kept for compatibility |
TCI2 uses MatrixLUCI for pivot
updates and supports batch evaluation, global pivot search, and two pivot
search strategies (PivotSearchStrategy::Full and
PivotSearchStrategy::Rook).
§Quick start
use tensor4all_tensorci::{crossinterpolate2, TCI2Options};
use tensor4all_simplett::AbstractTensorTrain;
// Function to interpolate: f(i, j) = i + j + 1
let f = |idx: &Vec<usize>| (idx[0] + idx[1] + 1) as f64;
let local_dims = vec![4, 4];
let first_pivot = vec![vec![1, 1]];
let (tci, _ranks, errors) =
crossinterpolate2::<f64, _, fn(&[Vec<usize>]) -> Vec<f64>>(
f,
None,
local_dims,
first_pivot,
TCI2Options::default(),
)
.unwrap();
// Check convergence
assert!(*errors.last().unwrap() < 1e-6);
// Evaluate through the tensor train
let tt = tci.to_tensor_train().unwrap();
let val = tt.evaluate(&[2, 3]).unwrap();
assert!((val - 6.0).abs() < 1e-10); // f(2,3) = 2+3+1 = 6§Related crates
tensor4all_tcicore– low-level matrix CI primitives andCachedFunctiontensor4all_simplett– theTensorTraindata structure produced by TCItensor4all-quanticstci– higher-level quantics TCI on discrete or continuous grids (wraps this crate)
Re-exports§
pub use error::Result;pub use error::TCIError;pub use globalpivot::DefaultGlobalPivotFinder;pub use globalpivot::GlobalPivotFinder;pub use globalpivot::GlobalPivotSearchInput;pub use globalsearch::estimate_true_error;pub use globalsearch::floating_zone;pub use optfirstpivot::opt_first_pivot;pub use tensorci1::crossinterpolate1;pub use tensorci1::SweepStrategy;pub use tensorci1::TCI1Options;pub use tensorci1::TensorCI1;pub use tensorci2::crossinterpolate2;pub use tensorci2::PivotSearchStrategy;pub use tensorci2::Sweep2Strategy;pub use tensorci2::TCI2Options;pub use tensorci2::TensorCI2;
Modules§
- error
- Error types for tensor cross interpolation operations
- globalpivot
- Global pivot finder for the TCI2 algorithm.
- globalsearch
- Post-hoc error estimation for tensor train approximations.
- integration
- Numerical integration using TCI and Gauss-Kronrod quadrature.
- optfirstpivot
- Utility for optimizing the first pivot for tensor cross interpolation.
- tensorci1
- TensorCI1 – One-site Tensor Cross Interpolation algorithm (legacy).
- tensorci2
- TensorCI2 - Two-site Tensor Cross Interpolation algorithm
Structs§
- Cached
Function - A wrapper that caches function evaluations for multi-index inputs.
- Index
Set - A bidirectional index set for efficient lookup
Enums§
- Cache
KeyError - Errors that can occur during cache key computation.
Traits§
- Cache
Key - Trait for cache key types used in flat-index computation.
- Index
Int - Trait for index element types.
- Scalar
- Common scalar trait for matrix and tensor operations.
Type Aliases§
- Local
Index - A single site-local index.
- Multi
Index - A multi-index: a vector of site-local indices.