fully_connected_tensor_product#

cuequivariance.group_theory.descriptors.fully_connected_tensor_product(
irreps1: Irreps,
irreps2: Irreps,
irreps3: Irreps,
) EquivariantPolynomial#

subscripts: weights[uvw],lhs[iu],rhs[jv],output[kw]

Construct a fully connected tensor product descriptor.

The descriptor is constructed by iterating over all possible combinations of irreducible representations of the inputs and output irreps and constructing a path for each combination.

Parameters:
  • irreps1 (Irreps) – Irreps of the first operand.

  • irreps2 (Irreps) – Irreps of the second operand.

  • irreps3 (Irreps) – Irreps of the output.

Returns:

Descriptor of the fully connected tensor product.

Return type:

cue.EquivariantPolynomial

Examples

>>> cue.descriptors.fully_connected_tensor_product(
...    16 * cue.Irreps("SO3", "0 + 1 + 2"),
...    16 * cue.Irreps("SO3", "0 + 1 + 2"),
...    16 * cue.Irreps("SO3", "0 + 1 + 2"),
... )
╭ a=61440x0 b=16x0+16x1+16x2 c=16x0+16x1+16x2 -> D=16x0+16x1+16x2
╰─ [ijk]·a[uvw]·b[iu]·c[jv]➜D[kw] ─ num_paths=15 i={1, 3, 5} j={1, 3, 5} k={1, 3, 5} u=16 v=16 w=16

Where 61440x0 are the 61440 weights needed to mix all the inputs with all the outputs.