On this page

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) -> PortPattern

Match one exact representation, optionally carrying index.

Parameters

NameTypeDefaultDescription
repRepresentation——
indexOptional[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) -> PortPattern

Match any Spenso representation head.

name is the reusable Symbolica wildcard name and must end in one underscore, for example "R_".

Parameters

NameTypeDefaultDescription
namestr——
dimensionExpression | 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]——
indexOptional[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) -> PortPattern

Match a self-dual representation head.

Parameters

NameTypeDefaultDescription
namestr——
dimensionExpression | 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]——
indexOptional[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) -> PortPattern

Match a dualizable representation in its base or dual orientation.

Parameters

NameTypeDefaultDescription
namestr——
dimensionExpression | 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]——
indexOptional[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—
dualboolFalse—