t3_linalg#

Linear algebra on ragged t3 data, defined w.r.t. the REPRESENTED dense tensor.

t3_add/t3_scale/t3_inner_product/t3_norm/t3_mult and the t3m_* forms simulate operations on the dense tensor, using the cores only as a computational device (add concatenates ranks; nothing here is corewise). t3_sum_stack is the rank-growing tensor sum over a stack – not the rank-preserving corewise core sum.

Functions#

t3_add(x, y)

Add Tucker tensor trains x and y, yielding a Tucker tensor train with summed ranks.

t3_sum_stack(x[, axis])

Sum the dense tensors represented by a stacked Tucker tensor train over stack axes.

t3_scale(x, s)

Multipy a Tucker tensor train by a scaling factor.

t3_inner_product(x, y[, use_orthogonalization])

Compute Hilbert-Schmidt inner product of two Tucker tensor trains.

t3_norm(x[, use_orthogonalization])

Compute Hilbert-Schmidt norm of a Tucker tensor train.

t3_mult(x, y)

Pointwise multiply Tucker tensor trains x and y, yielding a Tucker tensor train with multiplied ranks.

t3m_form_then_round(x, y[, max_tucker_ranks, ...])

Elementwise product x y -- method (a): form the full product, then round.

t3m_inplace_fused(x, y[, max_tucker_ranks, ...])

Elementwise product x y -- method (b): a fused left-to-right sweep that truncates as it

t3m_swap(x, y[, max_tucker_ranks, max_tt_ranks, rtol, ...])

Elementwise product x y -- method (c): the swap-based TTM generalization, for

t3_plus_scalar(x, s)

Add a scalar to a Tucker tensor train: (x + s).to_dense() == x.to_dense() + s.

t3_weighted_norm(x0, weights[, use_orthogonalization])

Weighted Hilbert-Schmidt norm of a Tucker tensor train: t3_norm(absorb(x0, weights)) -- the norm

t3_weighted_inner(x0_A, weights_A, x0_B, weights_B[, ...])

Weighted Hilbert-Schmidt inner product <absorb(A), absorb(B)> of two weighted Tucker tensor