Skip to main content

Crate tensor4all_tensorci

Crate tensor4all_tensorci 

Source
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 pointAlgorithmState typeNotes
crossinterpolate2TCI2 (two-site)TensorCI2Primary, actively maintained
crossinterpolate1TCI1 (one-site)TensorCI1Legacy, 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
  • [tensor4all_tcicore] – low-level matrix CI primitives and CachedFunction
  • tensor4all_simplett – the TensorTrain data structure produced by TCI
  • tensor4all-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§

CachedFunction
A wrapper that caches function evaluations for multi-index inputs.
IndexSet
A bidirectional index set for efficient lookup

Enums§

CacheKeyError
Errors that can occur during cache key computation.

Traits§

CacheKey
Trait for cache key types used in flat-index computation.
IndexInt
Trait for index element types.
Scalar
Common scalar trait for matrix and tensor operations.

Type Aliases§

LocalIndex
A single site-local index.
MultiIndex
A multi-index: a vector of site-local indices.