PortPattern
symbolica.community.spenso Class
PortPattern()A Symbolica expression representing one tensor port in a rewrite pattern.
Port patterns may name an exact representation or constrain a wildcard representation head by its Spenso duality tags. Omitting index produces a stripped representation, suitable for compact vector and trace patterns.
Examples
import symbolica as sp
from symbolica.community.spenso import PortPattern, Representation
D_, i_ = sp.S("D_", "i_")
exact = PortPattern.exact(Representation.mink(4), i_)
generic = PortPattern.self_dual("R_", D_, i_)
stripped = PortPattern.dualizable("C_", D_)Member details
exact
Static method#
exact(rep: Representation, index: Optional[Expression | int | Float | int | float | str | decimal.Decimal | ComplexFloat | Float | int | float | str | decimal.Decimal | complex | tuple[Float | int | float | str | decimal.Decimal, Float | int | float | str | decimal.Decimal]] = None) -> PortPatternMatch one exact representation, optionally carrying index.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
rep | Representation | — | — |
index | Optional[Expression | int | Float | int | float | str | decimal.Decimal | ComplexFloat | Float | int | float | str | decimal.Decimal | complex | tuple[Float | int | float | str | decimal.Decimal, Float | int | float | str | decimal.Decimal]] | None | — |
any
Static method#
any(name: str, dimension: Expression | int | Float | int | float | str | decimal.Decimal | ComplexFloat | Float | int | float | str | decimal.Decimal | complex | tuple[Float | int | float | str | decimal.Decimal, Float | int | float | str | decimal.Decimal], index: Optional[Expression | int | Float | int | float | str | decimal.Decimal | ComplexFloat | Float | int | float | str | decimal.Decimal | complex | tuple[Float | int | float | str | decimal.Decimal, Float | int | float | str | decimal.Decimal]] = None) -> PortPatternMatch any Spenso representation head.
name is the reusable Symbolica wildcard name and must end in one underscore, for example "R_".
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
name | str | — | — |
dimension | Expression | int | Float | int | float | str | decimal.Decimal | ComplexFloat | Float | int | float | str | decimal.Decimal | complex | tuple[Float | int | float | str | decimal.Decimal, Float | int | float | str | decimal.Decimal] | — | — |
index | Optional[Expression | int | Float | int | float | str | decimal.Decimal | ComplexFloat | Float | int | float | str | decimal.Decimal | complex | tuple[Float | int | float | str | decimal.Decimal, Float | int | float | str | decimal.Decimal]] | None | — |
self_dual
Static method#
self_dual(name: str, dimension: Expression | int | Float | int | float | str | decimal.Decimal | ComplexFloat | Float | int | float | str | decimal.Decimal | complex | tuple[Float | int | float | str | decimal.Decimal, Float | int | float | str | decimal.Decimal], index: Optional[Expression | int | Float | int | float | str | decimal.Decimal | ComplexFloat | Float | int | float | str | decimal.Decimal | complex | tuple[Float | int | float | str | decimal.Decimal, Float | int | float | str | decimal.Decimal]] = None) -> PortPatternMatch a self-dual representation head.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
name | str | — | — |
dimension | Expression | int | Float | int | float | str | decimal.Decimal | ComplexFloat | Float | int | float | str | decimal.Decimal | complex | tuple[Float | int | float | str | decimal.Decimal, Float | int | float | str | decimal.Decimal] | — | — |
index | Optional[Expression | int | Float | int | float | str | decimal.Decimal | ComplexFloat | Float | int | float | str | decimal.Decimal | complex | tuple[Float | int | float | str | decimal.Decimal, Float | int | float | str | decimal.Decimal]] | None | — |
dualizable
Static method#
dualizable(name: str, dimension: Expression | int | Float | int | float | str | decimal.Decimal | ComplexFloat | Float | int | float | str | decimal.Decimal | complex | tuple[Float | int | float | str | decimal.Decimal, Float | int | float | str | decimal.Decimal], index: Optional[Expression | int | Float | int | float | str | decimal.Decimal | ComplexFloat | Float | int | float | str | decimal.Decimal | complex | tuple[Float | int | float | str | decimal.Decimal, Float | int | float | str | decimal.Decimal]] = None, *, dual: bool = False) -> PortPatternMatch a dualizable representation in its base or dual orientation.
Parameters
| Name | Type | Default | Description |
|---|---|---|---|
name | str | — | — |
dimension | Expression | int | Float | int | float | str | decimal.Decimal | ComplexFloat | Float | int | float | str | decimal.Decimal | complex | tuple[Float | int | float | str | decimal.Decimal, Float | int | float | str | decimal.Decimal] | — | — |
index | Optional[Expression | int | Float | int | float | str | decimal.Decimal | ComplexFloat | Float | int | float | str | decimal.Decimal | complex | tuple[Float | int | float | str | decimal.Decimal, Float | int | float | str | decimal.Decimal]] | None | — |
dual | bool | False | — |
View generated signature source: docs/api/python/spynso3.pyi:142