nkdsl.SymbolicIRTerm

class SymbolicIRTerm(name, iterator, predicate, update_program, amplitude, branch_tag=None, metadata=<factory>, max_conn_size_hint=None, emissions=None)[source]

One primitive declarative symbolic operator term.

Parameters:
name

Term name.

Type:

str

iterator

Iterator descriptor (KBodyIteratorSpec).

Type:

Any

predicate

Branch-selection predicate.

Type:

nkdsl.ir.predicates.PredicateExpr

update_program

Matrix-element update program.

Type:

nkdsl.ir.update.UpdateProgram

amplitude

Matrix-element expression.

Type:

nkdsl.ir.expressions.AmplitudeExpr

branch_tag

Optional branch tag for diagnostics.

Type:

Any

metadata

Optional stable term metadata tuple.

Type:

tuple

max_conn_size_hint

Optional static upper-bound hint on the number of connected states this term produces per input configuration.

Type:

int | None

emissions

Optional multi-emission tuple that, when present, supersedes update_program and amplitude. Each entry is an EmissionSpec representing one output branch per iterator evaluation.

Type:

tuple | None

__init__(name, iterator, predicate, update_program, amplitude, branch_tag=None, metadata=<factory>, max_conn_size_hint=None, emissions=None)
Parameters:
Return type:

None

Methods

__init__(name, iterator, predicate, ...[, ...])

create(*, name, iterator, predicate, ...[, ...])

Builds a term from user-friendly values.

metadata_dict()

Returns metadata in dictionary form.

to_ir_lines([idx, indent])

Formats this term as indented IR lines for operator dumps.

Attributes

branch_tag

effective_emissions

Returns the active emission list for this term.

emissions

fanout_hint

Backward-compatible alias for max_conn_size_hint.

free_symbols

Returns the set of free (non-iterator-bound) symbol names in this term.

max_conn_size_hint

name

iterator

predicate

update_program

amplitude

metadata