nkdsl.Update¶
- class Update(_program=None)[source]¶
Immutable, chainable site-update program builder.
Every instance method appends one operation and returns a new
Updateobject, the original is never mutated. The canonical entry points are the module-level free functions (shift(),write(),swap(),permute(),affine(),scatter(),identity()) which avoid theUpdate()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
Updatewrapping 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.