nkdsl.Update

class Update(_program=None)[source]

Immutable, chainable site-update program builder.

Every instance method appends one operation and returns a new Update object, the original is never mutated. The canonical entry points are the module-level free functions (shift(), write(), swap(), permute(), affine(), scatter(), identity()) which avoid the Update() boilerplate.

Parameters:

_program (UpdateProgram | None) – Internal update program (do not pass manually).

__init__(_program=None)[source]
Parameters:

_program (UpdateProgram | None)

Return type:

None

Methods

__init__([_program])

affine(site_ref, *, scale[, bias])

Appends x'[i] = scale * x[i] + bias.

cond(predicate, *, if_true[, if_false])

Returns a new Update wrapping a JAX-compatible conditional.

hop(src, dst, *[, amount])

Appends an occupation transfer from src to dst.

invalidate(*[, reason])

Marks this branch as invalid (zero matrix element).

permute(*site_refs)

Appends a cyclic rotation over K sites.

scatter(flat_indices, values)

Appends bulk writes to static flat site indices.

shift(site_ref, delta)

Appends x'[i] = x[i] + delta.

shift_mod(site_ref, delta)

Appends a Hilbert-aware wrapped shift.

swap(site_a, site_b)

Appends x'[a], x'[b] = x[b], x[a].

to_program()

Returns the underlying immutable UpdateProgram.

write(site_ref, value)

Appends x'[i] = value.