ufv_variation_masks#
- t3toolbox.backend.ufv_masking.ufv_variation_masks(frame_masks)#
def ufv_variation_masks( frame_masks: typ.Tuple[NDArray, NDArray, NDArray, NDArray], # (up, down, frame_left, frame_right); HOST bool ) -> typ.Tuple[NDArray, NDArray, NDArray, NDArray]: # (up, down, left[:-1], right[1:])
The variation masks of a frame: its rank masks with the gauge shift applied.
A variation occupies one TT slot, not a boundary edge, so it takes the frame’s left masks without the last and the right masks without the first. The up/down masks pass through. This one line is the whole convention, and it was previously open-coded at four sites; call it rather than slicing by hand. (The frontend twin is
UT3Variations._variation_masks_of.)