pub fn tensor_train_to_treetn<T>(
tt: &TensorTrain<T>,
) -> Result<(TreeTN<TensorDynLen, usize>, Vec<DynIndex>)>Expand description
Convert a linear-chain simple tensor train into a TreeTN with node names 0..n-1.
The returned site indices are ordered by tensor-train site position, which is convenient for downstream state/layout bookkeeping.
ยงExamples
use tensor4all_core::{IndexLike, TensorIndex, TensorLike};
use tensor4all_simplett::{tensor3_from_data, AbstractTensorTrain, TensorTrain};
use tensor4all_treetn::tensor_train_to_treetn;
let tt = TensorTrain::new(vec![
tensor3_from_data(vec![1.0_f64, 2.0], 1, 2, 1),
]).unwrap();
let (treetn, site_indices) = tensor_train_to_treetn(&tt).unwrap();
let dense = treetn.contract_to_tensor().unwrap();
assert_eq!(treetn.node_names(), vec![0]);
assert_eq!(site_indices.len(), 1);
assert_eq!(dense.external_indices()[0].id(), site_indices[0].id());
assert_eq!(dense.dims(), vec![2]);