Mojo function
composition
composition(var layout_a: Layout, var layout_b: Layout) -> Layout
Composes two layouts to create a new layout.
This function creates a new layout by composing two layouts, where the first layout defines the outer structure and the second layout defines the inner structure.
The new layout is compatible with layout_b (that is, it has the same size
and every set of coordinates in layout_b has an equivalent in the new
layout). You can think of layout_b as selecting a subset of elements
from layout_a.
Example:
from layout.layout import Layout, IntTuple
from layout.layout import composition
# Compose a row-major layout with a tiling layout
var base = Layout.row_major(6, 8)
var tiling = Layout(IntTuple(3, 2), IntTuple(1, 3))
var composed = composition(base^, tiling^)
# Result: A layout that represents a 3x2 tile from
# layout_aArgs:
Returns:
Layout: A new layout representing the composition of the two layouts.
composition(var layout_a: Layout, tiler: List[Layout]) -> Layout
Composes a layout with a list of layouts to create a hierarchical layout.
This function creates a new layout by composing each element of the first layout with the corresponding element in the tiler list. If the tiler list is shorter than the layout, the remaining elements from the layout are appended unchanged.
Example:
from layout import Layout, LayoutList, IntTuple
from layout.layout import composition
# Compose a layout with a list of tiling layouts
var base = Layout.row_major(6, 8)
var tilers = LayoutList()
tilers.append(Layout(IntTuple(2, 2), IntTuple(1, 2)))
tilers.append(Layout(IntTuple(3, 3), IntTuple(1, 3)))
var composed = composition(base^, tilers^)
# Result: A layout with hierarchical tiling based on the tiler listArgs:
- βlayout_a (
Layout): The base layout to compose with the tiler. - βtiler (
List): A list of layouts to compose with the base layout.
Returns:
Layout: A new layout representing the composition of the base layout with the tiler.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!