e3j.core.Linear

class e3j.core.Linear(source_irreps: str | O3Space, target_irreps: str | O3Space, layout: str | Layout, channels: tuple[int, int] = (1, 1))

Linear channel mixing, with weights passed explicitly.

channels = (c_in, c_out) are folded into each block’s (m_out, m_in) weight shape. Target blocks absent from source produce zero outputs, and source blocks absent from target are discarded.

Methods

__call__(x, weights)

Mix x with one (m_out, m_in) weight per block of blocks.

Attributes

blocks

Per-(l, p) blocks of the linear, in weight order.

__call__(x: Array, weights: list[Array]) → Array

Mix x with one (m_out, m_in) weight per block of blocks.

property blocks: list[LinearBlock]

Per-(l, p) blocks of the linear, in weight order.