pub fn affine_transform_tensors_unfused(
r: usize,
params: &AffineParams,
bc: &[BoundaryCondition],
) -> Result<Vec<Tensor3<Complex64>>>Expand description
Create unfused affine transformation tensors.
Returns a vector of R tensors, where each tensor has shape:
[left_bond, 2, 2, ..., 2, right_bond] with M+N physical indices of dimension 2.
The physical index order matches Quantics.jl:
(y[1], y[2], ..., y[M], x[1], x[2], ..., x[N])
where y are output variables and x are input variables.
§Arguments
r- Number of bits per variable (number of sites)params- Affine transformation parametersbc- Boundary conditions for each output variable
§Returns
Vector of R tensors with unfused physical indices.
§Examples
use tensor4all_quanticstransform::{
affine_transform_tensors_unfused, AffineParams, BoundaryCondition,
};
use tensor4all_simplett::Tensor3Ops;
let params = AffineParams::from_integers(vec![1, 1, 0, 1], vec![0, 0], 2, 2).unwrap();
let bc = vec![BoundaryCondition::Periodic; 2];
let tensors = affine_transform_tensors_unfused(4, ¶ms, &bc).unwrap();
// One tensor per site
assert_eq!(tensors.len(), 4);
// Each tensor has fused site_dim = 2^(M+N) = 16 for M=2, N=2
assert_eq!(tensors[0].site_dim(), 16);