Irreps#
- class cuequivariance.Irreps(*args)#
具有重数的不可约表示的直和。
更多信息,请参阅 群和表示。
示例
>>> Irreps("SO3", "16x0 + 4x1") 16x0+4x1
>>> Irreps(cue.SO3, "16x0 + 4x1") 16x0+4x1
>>> Irreps(cue.SO3, [(16, 0), (4, 1)]) 16x0+4x1
>>> with cue.assume("SO3"): ... Irreps("16x0 + 4x1") 16x0+4x1
方法
- slices() list[slice] #
表示的每个分段的切片列表。
示例
>>> Irreps("SO3", "100x0 + 10x1").slices() [slice(0, 100, None), slice(100, 130, None)]
- is_scalar() bool #
所有表示都是标量。
注意
此函数不检查表示的重数。
示例
>>> Irreps("SO3", "100x0 + 0x1").is_scalar() False
>>> Irreps("SO3", "100x0").is_scalar() True
- merge_consecutive() Irreps #
合并具有相同表示的连续分段。
示例
>>> Irreps("SO3", "1 + 1 + 0 + 1").merge_consecutive() 2x1+0+1
- remove_zero_multiplicities() Irreps #
移除零重数。
示例
>>> Irreps("SO3", "1 + 0x2 + 1").remove_zero_multiplicities() 1+1
- sort() SortResult #
排序表示。
- 返回值:
排序后的表示和相关的置换。
- 返回类型:
SortResult
示例
>>> Irreps("SO3", "1 + 2 + 0 + 1").sort() SortResult(irreps=0+1+1+2, perm=(1, 3, 0, 2), inv=(2, 0, 3, 1))
- set_mul(mul: int) Irreps #
设置所有分段的重数。
示例
>>> Irreps("SO3", "3x0 + 2x0 + 4x1").set_mul(2) 2x0+2x0+2x1
- filter(
- *,
- keep: str | Sequence[Irrep] | Callable[[MulIrrep], bool] | None = None,
- drop: str | Sequence[Irrep] | Callable[[MulIrrep], bool] | None = None,
- mask: Sequence[bool] | None = None,
过滤表示。
- 参数:
示例
>>> Irreps("SO3", "4x0 + 4x1 + 2x2").filter(keep="0 + 1") 4x0+4x1
>>> Irreps("SO3", "4x0 + 4x1 + 2x2").filter(drop="0 + 1") 2x2