t3_broadcast_to_common_stack#
- t3toolbox.backend.t3_operations.t3_broadcast_to_common_stack(tucker_cores, tt_cores)#
def t3_broadcast_to_common_stack( tucker_cores: typ.Sequence[NDArray], # each shape = stack_i + (n, N) tt_cores: typ.Sequence[NDArray], # each shape = stack_i + (rL, n, rR) ) -> typ.Tuple[ typ.Tuple[NDArray, ...], # tucker_cores, each shape = stack + (n, N) typ.Tuple[NDArray, ...], # tt_cores, each shape = stack + (rL, n, rR) ]:
Broadcast every core of a T3 up to the common (broadcast) stack of all its cores.
Cores may carry different but broadcastable leading stack axes – e.g. a single-core-replacement term (
fv_to_t3) or a tangent term mixes a V+G-stacked variation core with G-stacked frame cores (the shared base point replicated over the tangent stack V). Returns the cores all stacked at the commonnp.broadcast_shapesstack, so the result is a valid uniform-stack T3. A no-op when every core already shares one stack.